我有按钮,应切换元素的Opacity
。目前它仅适用于一半 - 单击使控件可见(将不透明度设置为1)。我尝试使用ToogleButton
代替简单Button
来使用属性IsChechecked
(我认为它与IsClicked
相同)但我发现的并不是TargetName
。对我有好处,因为这个属性我不能为动画设置<ToggleButton BorderThickness="0" Background="Transparent" Grid.Column="0" Padding="0" Grid.Row="0" Focusable="False" Width="Auto" PreviewMouseUp="Share_Click">
<ToggleButton.Content>
<Grid HorizontalAlignment="Stretch">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Margin="0,0,6,0" Grid.Column="0" Text="Filter" Foreground="#FFC0B6D1" FontFamily="Segoe UI Semibold" FontSize="14" />
<Image Grid.Column="1" Margin="0,4,0,0" VerticalAlignment="Center" Height="6" Width="12" Name="FiltersToggleArrow" Style="{StaticResource ToogleFilters}"/>
</Grid>
</ToggleButton.Content>
<ToggleButton.Triggers>
<EventTrigger RoutedEvent="UIElement.PreviewMouseDown">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation BeginTime="0:0:0.00" Storyboard.TargetName="FiltersPanel" Storyboard.TargetProperty="Opacity" From="0" To="1" Duration="0:0:00.2" AutoReverse="False"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</ToggleButton.Triggers>
</ToggleButton>
。
{{1}}
答案 0 :(得分:1)
MSDN文档说:
您可以将此属性设置为应用setter集合(此setter所属的集合)范围内的任何元素的名称。这通常是包含此setter的模板中的命名元素。
要解决此问题,您可以将Storyboard
应用于Style
的{{1}}内,而不是Panel
。在这种情况下,您可以使用ToggleButton
绑定到DataTrigger
属性并采取相应措施。
以下是我使用IsChecked
和ToggleButton
进行的示例。
Rectangle
根据我对触发器的经验,他们可能是背后的皇家痛苦,并且很难做到正确。话虽这么说,这个例子应该足以满足你的要求。