3

我正在使用扩展 WPF 工具包的 Zoombox。现在,Ctrl+ 拖放正在改变位置,alt+Scroll正在改变缩放。从逻辑上讲,我宁愿扭转这种局面,因为在大多数软件中Ctrl+Scroll用于缩放。如何更改这些键?我玩弄了DragModifiersRelativeZoomModifiers 财产,但无法让它发挥作用。

我尝试了以下方法:

<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>

不幸的是,这并没有改变任何东西

4

1 回答 1

3

既然你没有说明,为什么你没有让它工作,这里有一个代码隐藏示例:

  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方式_

<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

于 2016-10-25T10:52:20.647 回答