我想制作额外的按钮块来控制Xceed.Wpf.Toolkit.Zoombox.Zoombox
在当前的实现中,Zoombox命令为RoutedUICommands
,因此如果我使用Zoombox
控件,请不要将它们重新接收。
这是一个示例XAML:
<xctk:Zoombox>
<Image Source="{Binding ImageAttachment.Path}" infrastructure:AttachedProperties.IgnoreVerticalAligment="True" />
</xctk:Zoombox>
<StackPanel>
<Button x:Name="HomeButton"
Width="20px"
Height="20px"
Command="xctk:Zoombox.Home"
Style="{StaticResource TransparentButton}"
ToolTip="Go Home">
<Image Margin="2" Source="{StaticResource HomeGlyph}" />
</Button>
<Button x:Name="FitButton"
Width="20px"
Height="20px"
Margin="2,0"
Command="xctk:Zoombox.Fit"
Style="{StaticResource TransparentButton}"
ToolTip="Fit Content within Bounds">
<Image Margin="2" Source="{StaticResource FitContentGlyph}" />
</Button>
<StackPanel>
是否有任何方法包含路由RoutedUICommands的控件?
答案 0 :(得分:0)
RoutedCommand的工作原理是从生成命令的控件开始,然后在控件层次结构中冒泡,直到处理完为止。在你的情况下,RoutedCommand的路径将是:Button&gt; StackPanel&gt;窗口。 RoutedCommand不会转到Zoombox,因为它是StackPanel的兄弟,而不是父。
为了使其工作,您需要使用按钮的CommandTarget属性。 CommandTarget使RoutedCommand从目标开始,然后沿着树向上运行。你可以这样做:
<xctk:Zoombox x:Name="myZoomBox">
<Image Source="{Binding ImageAttachment.Path}"/>
</xctk:Zoombox>
<StackPanel>
<Button x:Name="HomeButton"
Command="xctk:Zoombox.Home"
CommandTarget="{Binding ElementName=myZoomBox}"/>
</StackPanel>