私はGridSplitter
、ほとんど不透明な を作成しようとしています。マウスオーバーすると、アニメーション化して完全に表示されます。これが私が試したことです:
スタイル:
<Style x:Key="SplitterStyle" TargetType="{x:Type GridSplitter}">
<Setter Property="Opacity" Value="0.2" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type GridSplitter}">
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Trigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="Opacity" To="1" Duration="0:0:0.2" />
</Storyboard>
</BeginStoryboard>
</Trigger.EnterActions>
<Trigger.ExitActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="Opacity" Duration="0:0:0.3" />
</Storyboard>
</BeginStoryboard>
</Trigger.ExitActions>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
GridSplitter
:
<GridSplitter
ResizeDirection="Columns"
Grid.Column="0"
Background="Red"
VerticalAlignment="Stretch"
Width="4"
Style="{StaticResource SplitterStyle}" />
MSDN を確認したところ、GridSplitter には私が使用しているすべてのプロパティが含まれているため、問題ないように思われますが、明らかに何かを見落としているのではないでしょうか?
編集:
GridSplitter を別の要素に入れることは可能ですか? スタイルを次のように変更しました。
<Style x:Key="SplitterStyle" TargetType="{x:Type Border}">
<Setter Property="Opacity" Value="0.2" />
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Trigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="Opacity" To="1" Duration="0:0:0.2" />
</Storyboard>
</BeginStoryboard>
</Trigger.EnterActions>
<Trigger.ExitActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="Opacity" Duration="0:0:0.3" />
</Storyboard>
</BeginStoryboard>
</Trigger.ExitActions>
</Trigger>
</Style.Triggers>
</Style>
次に、代わりに GridSplitter を Border に配置し、スタイルを境界線に適用しました。
<Border
Style="{StaticResource SplitterStyle}"
Background="{StaticResource WindowBorderBrush}"
VerticalAlignment="Stretch"
Width="4"
Grid.Column="0"
HorizontalAlignment="Right">
<GridSplitter ResizeDirection="Columns" Background="Red" ResizeBehavior="CurrentAndNext"/>
</Border>
ボーダーが大活躍!しかし、現在、GridSplitter はどこにも見つかりません (赤い背景は表示されず、境界線の上にカーソルを置いてもカーソルは変化せず、サイズを変更するためにドラッグするものは何もありません)。どうしてこれなの?
編集:
の幅を指定する必要があることがわかりましたGridSplitter
。GridSplitter
また、赤色を使用する予定がなかったので、 の背景を透明に変更しました。今、それは表示され、見栄えがしますが、実際には何もサイズ変更されません:P 実際に役立つようにするにはどうすればよいですか?