【问题标题】:Toolbar on right side of the screen in wpfwpf屏幕右侧的工具栏
【发布时间】:2018-04-14 07:50:36
【问题描述】:
【问题讨论】:
标签:
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。
每个单元都在一个拇指内。拇指是您在滑块上上下或左右拖动的矩形。它们是为拖动而设计的。这样拖动很流畅,我可以很容易地在被拖动的光标下放置一个单元。