此处的按钮仅在鼠标悬停在页面上时可见。我试图通过我的代码测试(单击)按钮并失败。我尝试过像悬停然后点击一样的选项,但也不起作用。 有关信息: 此按钮位于StackPanel(例如A)内,该按钮具有与按钮相同的属性(仅在鼠标悬停后可见)。此网格再次嵌入到可见的网格B中。
的Xaml:
<StackPanel Grid.Row="0" Grid.Column="1" Name="CenterButtons" Margin="10,5" VerticalAlignment="Center" Orientation="Horizontal">
<StackPanel.Style>
<Style TargetType="{x:Type StackPanel}" >
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=CenterButtons, Path=(Grid.Row)}" Value="0">
<Setter Property="HorizontalAlignment" Value="Center" />
</DataTrigger>
<DataTrigger Binding="{Binding ElementName=CenterButtons, Path=(Grid.Row)}" Value="1">
<Setter Property="HorizontalAlignment" Value="Left" />
</DataTrigger>
</Style.Triggers>
</Style>
</StackPanel.Style>
<Button Name="DeletePageButton" Command="{Binding MarkForDeletionCommand}" Style="{StaticResource NoBorderVectorButtonStyle}"
ToolTip="{x:Static resx:DocPdfPages.ToolTipMarkForDeletion}"
controls:AdditionalAttachedProperties.GeometryData="{DynamicResource DeleteGlyph}"/>
<Button Name="RotateCounterClockwiseButton" Command="{Binding RotateLeftCommand}"
Style="{StaticResource NoBorderVectorButtonStyle}"
ToolTip="{x:Static resx:DocPdfPages.ToolTipRotatePageLeft}"
controls:AdditionalAttachedProperties.GeometryData="{DynamicResource RotateGlyph}">
<Button.LayoutTransform>
<TransformGroup>
<ScaleTransform ScaleX="-1" />
</TransformGroup>
</Button.LayoutTransform>
</Button>
</StackPanel>
答案 0 :(得分:0)
使用Command
而不是Click处理程序的一个好处是,您可以从代码手动调用Command
,而无需UI交互。这有助于测试您的场景。
对于Command
,您会发现DataContext
。然后你可以像这样调用它:
ICommand deletionCommand = DataContext.MarkForDeletionCommand;
if (deletionCommand.CanExecute(null))
deletionCommand.Execute(null);
您的命令不接受任何参数,因此您应该通过为参数提供null
来获得正确的行为。