我已经概括了我的表单,并为每种类型的表单设计了通用样式:
<Style TargetType="UserControl" x:Key="ViewForm">
<Setter Property="Padding" Value="18"></Setter>
<Style.Resources>
<Style TargetType="TextBlock">
<Setter Property="FontFamily" Value="{StaticResource IranSans}"/>
// ...
</Style>
<Style TargetType="TextBlock" x:Key="Right">
<Setter Property="FontFamily" Value="{StaticResource IranSans}"/>
</Style>
<Style TargetType="TextBlock" x:Key="Left">
<Setter Property="FontFamily" Value="{StaticResource IranSans}"></Setter>
// ...
</Style>
<Style TargetType="Label">
<Setter Property="FontFamily" Value="{StaticResource IranSans}"/>
// ...
</Style>
</Style.Resources>
</Style>
我正在UserControls
使用它,我希望能够为我的TextBlock
使用Left
和Right
样式,但我无法访问它们。 例如:
<TextBlock Grid.Row="3" Style="{StaticResource Right}">Email :</TextBlock>
那些没有x:Key="SomeKey..."
的风格一切都很好
我该怎么办?
用户控件"资源"和用户控件"样式资源"是两个不同的东西。用户控件的嵌套控件(如文本框(,标签将有权访问"资源"而不是"设置资源样式"。
所以正确的方法是——
<UserControl>
<UserControl.Resources>
<!-- Place all styles that you want to put over child controls -->
</UserControl.Resources>
<UserControl.Style>
<Style>
<Style.Resources>
<!-- Place all styles that you want to use within this style -->
</Style.Resources>
</Style>
</UserControl.Style>
</UserControl>