在这个答案中,如果您忽略该x:Name
属性,则将(正确地?似乎..)声明该样式自动应用于任何地方。
如果未在每个样式上指定标识符,则该样式将应用于与您指定的TargetType匹配的所有控件。如果您希望按钮看起来有所不同,则可以执行与上述相同的操作,但还可以包含该样式的标识符,该标识符将由每个不同的按钮使用:[...]
但是,当我添加一个x:Name
标识符时,应该不自动应用它,还是应该这样做?
因为当我尝试这个:
<Style TargetType="{x:Type TextBlock}" x:Name="RunningTextStyle">
<Setter Property="FontSize" Value="15" />
</Style>
在我ResourceDictionary
这样链接到我的app.xaml
方式:
<Application.Resources>
<ResourceDictionary Source="ApplicationStyles.xaml" />
</Application.Resources>
它仍然会自动应用于所有TextBlock
。
如何创建必须与其标识符一起显示的样式?
我在VS2015中使用Resharper,x:Key
当我尝试以TextBlock
这种方式手动将样式添加到样式时,名称甚至都没有显示:Style="{StaticResource ...}"
定义是一种可能(我曾经以这种方式使用过,但确实可以使用。它可以正常工作,但通常是在做广告由R#或VS使用)。
有趣的是,我只需要几个小时就可以Button
自动应用我的样式。
给样式设置一个x:Key="MyArbitraryStyleKey"
属性。它在中ResourceDictionary
,并且字典中某事物的“名称”(比方说,这是所谓的)称为“键”,当您以这种方式查看它时,它实际上是有道理的。而在功能上,在XAML,x:Name
并x:Key
调用不同的代码做的非常不同的方式不同的事情,即使语义差别感觉开头有点模糊。
<Style TargetType="{x:Type TextBlock}" x:Key="RunningTextStyle">
<Setter Property="FontSize" Value="15" />
</Style>
...
<TextBlock
Style="{StaticResource RunningTextStyle}"
Text="I tried Resharper once. Sent them back their demo, tied to a brick."
/>
如果Resharper不喜欢,请向他们发送错误报告(嘿,事实证明Resharper喜欢它-我收回我所说的一切!)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句