我希望只有当用户有鼠标在GridSplitter上时,才能看到它。为此,我正在设置一个DataTrigger的样式。但我不知道是什么错了,因为我没有得到想要的行为。它只是保持不变。
<GridSplitter
ResizeDirection="Columns"
ResizeBehavior="BasedOnAlignment"
Grid.Column="1"
Grid.Row="0"
Grid.RowSpan="2"
Width="8"
Height="Auto"
HorizontalAlignment="Left"
VerticalAlignment="Stretch"
Background="AliceBlue"
Margin="-3 0 0 0">
<GridSplitter.Style>
<Style TargetType="{x:Type GridSplitter}">
<Setter Property="Visibility" Value="Hidden"/>
<Style.Triggers>
<DataTrigger Binding="{Binding IsMouseOver}">
<Setter Property="Visibility" Value="Visible"/>
</DataTrigger>
</Style.Triggers>
</Style>
</GridSplitter.Style>
</GridSplitter>你看到什么不对劲了吗?GridSplitter必须采用不同的样式吗?
发布于 2013-09-05 13:30:11
我想出来了,必须使用触发器而不是DataTriggers:
<GridSplitter.Style>
<Style TargetType="{x:Type GridSplitter}">
<Setter Property="Background" Value="Transparent"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="AliceBlue"/>
</Trigger>
</Style.Triggers>
</Style>
</GridSplitter.Style>顺便说一句,我认为如果我将Visibility设置为Hidden,我不能针对GridSplitter,所以我切换了它的Background。
https://stackoverflow.com/questions/18637399
复制相似问题