C# 在ScrollViewer上移动控件
我正在开发一个小的WPF应用程序,它使用C# 在ScrollViewer上移动控件,c#,wpf,C#,Wpf,我正在开发一个小的WPF应用程序,它使用ScrollViewer在窗口中显示图像。 我已经以编程方式生成了窗口和所有相关代码(如果需要,我将显示它,但我认为对于这个问题来说没有用处) 问题/方法如下。我必须在ScrollViewer中包含的图像上显示/隐藏(按下按钮)控件(基本上是InkCanvas)。除了显示/隐藏部分,使用按钮事件非常简单),这是在窗口添加控件(以及哪种类型的控件/容器)的最佳方式,强制他在ScrollViewer上,然后能够拖动它移动 我对WPF比较陌生,我使用了很多Win
ScrollViewer
在窗口中显示图像。
我已经以编程方式生成了窗口和所有相关代码(如果需要,我将显示它,但我认为对于这个问题来说没有用处)
问题/方法如下。我必须在ScrollViewer
中包含的图像上显示/隐藏(按下按钮)控件(基本上是InkCanvas
)。除了显示/隐藏部分,使用按钮事件非常简单),这是在窗口添加控件(以及哪种类型的控件/容器)的最佳方式,强制他在ScrollViewer上,然后能够拖动它移动
我对WPF比较陌生,我使用了很多WinForms(我可以在WinForms中这样做,但WPF对我来说是一个新世界)
提前谢谢 对于容器,您应该使用网格
,该网格将在同一单元格中的控件居中放置在彼此的顶部
至于拖放,如果您想自己实现它,我在这里提供了一个最小的实现:
否则,您可以使用MouseDragElementBehavior
由Blend提供的行为
下面是一个教程,它从混合本身演示了它的用法:
但您可以通过导入混合库并从XAML中将其与以下内容一起使用,而无需混合:
<InkCanvas ...>
<interactivity:Interaction.Behaviors>
<blendbehaviors:MouseDragElementBehavior />
</interactivity:Interaction.Behaviors>
</InkCanvas>
由于交互性
和blendbehaviors
被映射到混合名称空间。我不得不回答我的问题,帖子太长,无法直接发表评论。