在当前窗口上,我有一个带有多个控件(标签、文本框、按钮)的网格。一般样式在 App.xaml 中设置。每个控件的扩展都在网格资源中设置。每个控件的可见性由 viewmodel 属性值决定。不要将每个控件的可见性绑定到它(它使用自定义转换器,这会导致很多重复)我希望有“MyVisible1”样式。
问题是如果我应用这种样式,它会与其他属性重叠。我应该在“BasedOn”中使用什么值?或者我还能做些什么来实现它?
<Grid>
<Grid.Resources>
<Style TargetType="{x:Type Control}" x:Key="MyVisible1">
<Setter Property="Visibility" Value="{Binding ...}" />
</Style>
<Style TargetType="Label" BasedOn="{StaticResource {x:Type Label}}">
<Setter Property="HorizontalAlignment" Value="Right" />
</Style>
<Style TargetType="TextBox" BasedOn="{StaticResource {x:Type TextBox}}">
<Setter Property="Width" Value="80" />
<Setter Property="HorizontalAlignment" Value="Left" />
</Style>
<Style TargetType="Button" BasedOn="{StaticResource {x:Type Button}}">
<Setter Property="Width" Value="45" />
<Setter Property="HorizontalAlignment" Value="Right" />
</Style>
</Grid.Resources>
<TextBox Grid.Column="0" Grid.Row="0" Style="{StaticResource MyVisible1}"/>
</Grid>