我在stackoverflow中看到了以下代码:
<UserControl x:Class="WpfApplication3.UserControl1"
x:Name="Uc1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<UserControl.Resources>
<Style TargetType="Label">
<Setter Property="Foreground"
Value="{Binding Foreground, ElementName=Uc1, Mode=OneWay}"/>
</Style>
</UserControl.Resources>
<Grid>
<Label Content="Label 1"/>
<Label Content="Label 2"/>
</Grid>
</UserControl>
问题:我现在想知道我是否可以在usercontrol.resources中定位特定标签以进行样式设置。是否可以在我的userControl中?如果是,那怎么样?
答案 0 :(得分:1)
没有Key
的样式将应用于范围内的所有目标类型实例。
将样式设为Key
,例如
<Style TargetType="Label" x:Key="MyLabel">
然后使用Key
<Label Content="Label 1" Style="{StaticResource MyLabel}" />
<!--Will not apply the style to Label 2-->
<Label Content="Label 2"/>
修改强>
我再次阅读了您的问题,似乎您想从Target
引用Style
,而不是Style
引用Target
。是对的吗?它听起来像 unnatural ,就像想要从基类知道派生类的实例的名称。