我正在使用Extended WPF Toolkit的Zoombox。现在, Ctrl +拖放正在改变位置, alt + Scroll 正在改变缩放。从逻辑上讲,由于在大多数软件中 Ctrl + Scroll 用于缩放,所以我更倾向于此。如何更改这些键?我使用了DragModifiers
和RelativeZoomModifiers
属性,但却无法使用它。
我尝试了以下内容:
<xctk:Zoombox Margin="20" ClipToBounds="False" HorizontalAlignment="Stretch" Name="CanvasZoombox" VerticalAlignment="Stretch" Scale="1" AutoWrapContentWithViewbox="False">
<xctk:Zoombox.ZoomModifiers>
<xctk:KeyModifier>LeftCtrl</xctk:KeyModifier>
</xctk:Zoombox.ZoomModifiers>
<xctk:Zoombox.RelativeZoomModifiers>
<xctk:KeyModifier>LeftCtrl</xctk:KeyModifier>
</xctk:Zoombox.RelativeZoomModifiers>
<Viewbox Stretch="Uniform" Name="CanvasViewbox" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" OpacityMask="White">
<Canvas Name="LabelCanvas" Background="#FFC3C3C3"/>
</Viewbox>
</xctk:Zoombox>
不幸的是,这并没有改变任何事情
答案 0 :(得分:2)
既然你没有说明,为什么你没有让它工作,这里是一个Code-Behind-Example:
var zoomKeys = new KeyModifierCollection();
zoomKeys.Add(KeyModifier.Ctrl);
zoomKeys.Add(KeyModifier.Exact);
var dragKeys = new KeyModifierCollection();
dragKeys.Add(KeyModifier.Alt);
dragKeys.Add(KeyModifier.Exact);
this.zoombox.ZoomModifiers = zoomKeys;
this.zoombox.DragModifiers = dragKeys;
由于这些修饰符都是DependencyProperties
,因此您也可以以MVVM方式绑定它们。
更新
XAML -way
<xctk:Zoombox.ZoomModifiers>
<xctk:KeyModifierCollection>
<xctk:KeyModifier>Ctrl</xctk:KeyModifier>
<xctk:KeyModifier>Exact</xctk:KeyModifier>
</xctk:KeyModifierCollection>
</xctk:Zoombox.ZoomModifiers>
<xctk:Zoombox.DragModifiers>
<xctk:KeyModifierCollection>
<xctk:KeyModifier>Alt</xctk:KeyModifier>
<xctk:KeyModifier>Exact</xctk:KeyModifier>
</xctk:KeyModifierCollection>
</xctk:Zoombox.DragModifiers>
诀窍是将KeyModifier
包装在其适合的集合KeyModifierCollection