如何创建不会自动应用的样式?

黑手党

在这个答案中,如果您忽略该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自动应用我的样式。

15ee8f99-57ff-4f92-890c-b56153

给样式设置一个x:Key="MyArbitraryStyleKey"属性。它在中ResourceDictionary,并且字典中某事物的“名称”(比方说,这是所谓的)称为“键”,当您以这种方式查看它时,它实际上是有道理的。而在功能上,在XAML,x:Namex: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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章