【问题标题】:Toolbar on right side of the screen in wpfwpf屏幕右侧的工具栏
【发布时间】:2018-04-14 07:50:36
【问题描述】:

我正在尝试制作一个 WPF 应用程序,其中屏幕上有一个可拖动的工具栏,用户可以通过该工具栏选择不同类型的工具并在画布上使用它。也有人可以告诉我如何制作透明画布。一个很好的例子来自this picture in which there is drag able toolbar on right side of the picture. And the user can also work on any window he wants. 我是 WPF 的新手,我正在努力寻找解决我的问题的方法已经有一段时间了。有人可以指导我正确的方向吗...

【问题讨论】:

    标签: c# wpf windows xaml multi-touch


    【解决方案1】:

    后台 DP 默认值为空。当背景设置为空时,显示的颜色为白色,鼠标交互不起作用。需要将 Canvas、ListBox 和 ListBoxItem 的背景设置为透明,才能看到父控件的背景

    <Canvas Background="Transparent"/>
    

    【讨论】:

      【解决方案2】:

      把它想象成一个窗口,而不是工具栏。
      我会看看avalondock。

      透明画布:

      <Canvas Background="Transparent"
      

      顺便说一句,这是从 wpf 初学者级别开始的几个步骤。

      如果你看看这个:
      https://imgur.com/4n7vH8k

      用户正在设计一个游戏场景。他们将单元从左侧的面板(它是一个树视图)拖到右侧的画布上。只是这不仅仅是一个普通的画布,它是一个以画布作为 itemspresenter 的项目控件。这允许我从一组单元视图模型中模板化单元。它使用 mvvm 模式。
      如果你没有遇到过这种技术,那就有点奇怪了。这里有几个示例来看看哪些模板将不同的视图模型转换为不同的 UI 对象。 https://1drv.ms/u/s!AmPvL3r385QhgooJ94uO6PopIDs4lQ https://1drv.ms/u/s!AmPvL3r385QhgooLcGrZOSwFswa-Dg
      数据类型用于决定您在视图中获得什么视图模型。

      您决定要一个可在多个窗口中使用的可停靠面板,这有点复杂。也许这不是必须的。

      我的应用中的拖放实际上并不是拖放,而是依赖于画布的一个奇怪方面。它们不会剪辑,因此您可以在画布上添加一些内容,但将其放置在画布之外。
      当您开始拖动一个单元时,它的视图模型将添加到绑定到我的单元项控件的集合中。这会将它作为一个整体模板放入画布中。我计算出与画布相比的位置,所以它会有一个负 X 方面,我绑定到 Canvas.Left。
      每个单元都在一个拇指内。拇指是您在滑块上上下或左右拖动的矩形。它们是为拖动而设计的。这样拖动很流畅,我可以很容易地在被拖动的光标下放置一个单元。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-05-18
        • 2016-08-08
        相关资源
        最近更新 更多