在滚动查看器上移动控制

本文关键字:移动 控制 滚动 | 更新日期: 2023-09-27 18:19:12

我正在开发一个小的WPF应用程序,它使用ScrollViewerWindow中显示Image。我已经以编程方式生成了窗口和他所有的相关代码(如果需要,我会显示它,但我认为对这个问题的要点没有用处)。

问题/如何做如下。我必须在ScrollViewer中包含的图像上显示/隐藏(按下按钮)控件(基本上是InkCanvas)。除了部分哦,显示/隐藏是相当简单的使用按钮事件),这是最好的方式来添加控件(和哪种类型的控件/容器)在窗口迫使他在ScrollViewer,然后能够移动周围拖动它?

我对WPF比较陌生,我使用了很多WinForms(我可以在WinForms中做到这一点,但WPF对我来说是一个新世界)。

提前感谢!

在滚动查看器上移动控制

对于容器,您应该使用Grid,它将在同一单元格中居中并将控件置于彼此的顶部。

至于拖放,如果你想自己实现它,我在这里提供了一个最小的实现:https://stackoverflow.com/a/17014906/145757

否则您可以使用Blend提供的MouseDragElementBehavior行为。

下面是一个从Blend本身演示其用法的教程:http://www.c-sharpcorner.com/uploadfile/nipuntomar/expression-blend-4-behaviors/

但是你可以不使用Blend,通过导入Blend库并在XAML中使用它,例如:

<InkCanvas ...>
    <interactivity:Interaction.Behaviors>
        <blendbehaviors:MouseDragElementBehavior />
    </interactivity:Interaction.Behaviors>
</InkCanvas>

,其中interactivityblendbehaviors被映射到Blend名称空间。