我正在尝试在Style
中制作通用<Window.Resources>
,以便我可以在旁边设置ToggleButton
的可见性。我无法找到解决此问题的具体问题。
我在下面创建了Style
,但它似乎隐藏了项目中的每个ComboBox
,即使我只在IsVisible
为真时设置了触发器。
代码:这是我对风格的尝试,
<Window.Resources>
<Style x:Key="ComboBoxToggleStyle" TargetType="{x:Type ToggleButton}">
<Setter Property="Visibility" Value="{Binding Path=IsVisible,
RelativeSource={RelativeSource AncestorType={x:Type ComboBox}}}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ToggleButton}">
<ControlTemplate.Triggers>
<Trigger Property="IsVisible" Value="True">
<Setter Property="Visibility" Value="Hidden" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
这是项目中所有CombBox
的主要风格,
<Style TargetType="{x:Type ComboBox}">
<Setter Property="IsEditable" Value="False" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ComboBox}">
<Grid>
<ToggleButton Grid.Column="1"
Style="{StaticResource ComboBoxToggleStyle}">
<....More styles below...>
任何帮助我指明正确方向的帮助都会很棒。
答案 0 :(得分:1)
您无法设置IsVisible
属性,因为它没有公共设置器。并且您无法绑定Value
的{{1}}属性,因此这不起作用。
您可以将要隐藏Setter
的特定Style
的{{1}}属性设置为ComboBox
,而ToggleButton
的模板缺少Style
{1}}:
ToggleButton