我有一个与鼠标光标一起移动的装饰器 . 然而,只要鼠标移出窗外,装饰者就会被切断 .
是否可以将装饰图层扩展到整个屏幕或创建新的装饰图层 .
你可能会这样做,虽然我不确定你想要用adorner层做什么 . 只要窗口具有焦点,我的解决方案将仅允许装饰者跟随鼠标 . 请分享您的最终目标,以便我能更好地为您提供帮助 .
我的想法是创建一个带有透明背景的全屏无边框窗口,以容纳您想要的任何控件 . 窗口的非透明部分将位于网格内 .
创建一个新窗口 . 将其WindowBorderStyle设置为“None”,将Width和Height设置为“Auto”,将“WindowState”设置为“Maximized” . (我现在不看IDE,所以属性名称可能略有偏差 . )
在原始窗口中复制网格(或您正在使用的任何主容器)的XAML代码,并将其粘贴到新窗口中 . 确保使用粘贴的网格替换新窗口中的空网格 .
这应该允许您让装饰层跟随整个窗口的鼠标 .
再次,在这里发布您的确切目标,这样我就可以给出更适合您特定需求的答案 .
也许他想绘制选择区域我会同样的问题,但你可以看到下面的链接,它的工作原理 . http://www.codeproject.com/Articles/22952/WPF-Diagram-Designer-Part-2我发现当背景透明时你无法接收鼠标事件 . 如果你给装饰者一些背景,那么一切都还可以 .
protected override void OnRender(DrawingContext dc) { dc.DrawRectangle(bg, null, new Rect(RenderSize)); dc.DrawRectangle(Brushes.Red, null, new Rect(start, end)); }
bg画笔就像,
private Brush bg = new SolidColorBrush(Color.FromArgb(0x01, 0, 0, 0));
2 回答
你可能会这样做,虽然我不确定你想要用adorner层做什么 . 只要窗口具有焦点,我的解决方案将仅允许装饰者跟随鼠标 . 请分享您的最终目标,以便我能更好地为您提供帮助 .
我的想法是创建一个带有透明背景的全屏无边框窗口,以容纳您想要的任何控件 . 窗口的非透明部分将位于网格内 .
创建一个新窗口 . 将其WindowBorderStyle设置为“None”,将Width和Height设置为“Auto”,将“WindowState”设置为“Maximized” . (我现在不看IDE,所以属性名称可能略有偏差 . )
在原始窗口中复制网格(或您正在使用的任何主容器)的XAML代码,并将其粘贴到新窗口中 . 确保使用粘贴的网格替换新窗口中的空网格 .
这应该允许您让装饰层跟随整个窗口的鼠标 .
再次,在这里发布您的确切目标,这样我就可以给出更适合您特定需求的答案 .
也许他想绘制选择区域我会同样的问题,但你可以看到下面的链接,它的工作原理 . http://www.codeproject.com/Articles/22952/WPF-Diagram-Designer-Part-2
我发现当背景透明时你无法接收鼠标事件 . 如果你给装饰者一些背景,那么一切都还可以 .
bg画笔就像,