无法访问嵌套 WPF 样式上的样式



我已经概括了我的表单,并为每种类型的表单设计了通用样式:

<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使用LeftRight样式,但我无法访问它们。 例如:

<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>

相关内容

  • 没有找到相关文章

最新更新