我已对表单进行了通用化,并为每种类型的表单设计了通用样式:
<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
中使用它,我希望能够为Left
使用Right
和TextBlock
样式,但是我无权访问它们。例如:
<TextBlock Grid.Row="3" Style="{StaticResource Right}">Email :</TextBlock>
***对于那些没有x:Key="SomeKey..."
我该怎么办?
答案 0 :(得分:0)
用户控件“资源”和用户控件“样式资源”是两件不同的事情。用户控件的嵌套控件(如文本框,标签)将有权访问“资源”而不是“样式资源”。
所以正确的方法是-
<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>