我想更改单击椭圆时的不透明度。因此,如果单击椭圆,它的不透明度将从1变为0.2,如果再次单击它,它将切换回原来的状态。
目前,我的椭圆正在使用复杂的多重绑定
<Ellipse.Fill>
<MultiBinding Converter="{StaticResource FloatToCorConv}">
<Binding Path="FValue" Mode="OneWay" />
<Binding Path="MValue" Mode="OneWay" />
<Binding Path="GId" Mode="OneWay" />
<Binding Source="{x:Static foo:Bar.Instance}" Path="IsLiked" Mode="OneWay" />
</MultiBinding>
</Ellipse.Fill>
我有一个名为IsRemoved
的布尔值,它具有FValue
之类的属性,但是我不确定如何将其链接到鼠标单击以改变不透明度。到目前为止,我的椭圆还有其他一些按钮交互作用。
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseEnter">
<utils:InteractiveCommand Command="{Binding RelativeSource=
{RelativeSource FindAncestor, AncestorType={x:Type UserControl}}, Path=DataContext.MouseEnter}"/>
</i:EventTrigger>
<i:EventTrigger EventName="MouseLeave">
<utils:InteractiveCommand Command="{Binding RelativeSource=
{RelativeSource FindAncestor, AncestorType={x:Type UserControl}}, Path=DataContext.MouseLeave}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
答案 0 :(得分:1)
可以使用ToggleButton
和适当的Style
/ ContentTemplate
<ToggleButton>
<ToggleButton.Style>
<Style TargetType="{x:Type ToggleButton}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ToggleButton}">
<Ellipse
x:Name="TheEllipse"
Width="64"
Height="32"
Fill="#0000FF"
Stroke="Black"
StrokeThickness="2" />
<ControlTemplate.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter TargetName="TheEllipse" Property="Fill" Value="#550000FF" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ToggleButton.Style>
</ToggleButton>