【问题标题】:Moving Control over a ScrollViewer在 ScrollViewer 上移动控制
【发布时间】:2014-08-22 16:26:27
【问题描述】:

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

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

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

提前致谢!

【问题讨论】:

    标签: c# wpf


    【解决方案1】:

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

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

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

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

    但是您可以通过导入 Blend 库并从您的 XAML 中使用它来使用它而不使用 Blend:

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

    interactivityblendbehaviors 被映射到 Blend 命名空间。

    【讨论】:

    • 我必须回答我的问题,帖子太长,无法直接发表评论。
    猜你喜欢
    • 1970-01-01
    • 2012-01-31
    • 2012-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多