首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WPF将装饰器移动到AdornerLayer或窗口之外

WPF将装饰器移动到AdornerLayer或窗口之外
EN

Stack Overflow用户
提问于 2010-07-30 20:13:30
回答 2查看 2.5K关注 0票数 6

我有一个装饰器,它是随着鼠标光标移动的。然而,一旦鼠标移出窗口,装饰器就会被切断。

是否可以将装饰层扩展到整个屏幕或创建一个新的装饰层。

EN

回答 2

Stack Overflow用户

发布于 2011-02-03 03:13:01

你也许可以这样做,尽管我不确定你想用装饰层做什么。我的解决方案将只允许装饰者跟随鼠标,只要窗口具有焦点。请分享你的最终目标,这样我才能更好地帮助你。

我的想法是创建一个具有透明背景的全屏幕、无边框的窗口,以容纳您想要的任何控件。窗口的非透明部分将位于网格内部。

  1. 创建一个新窗口。将其WindowBorderStyle设置为"None",将宽度和高度设置为"Auto",并将"WindowState“设置为"Maximized”。
  2. 将网格的XAML代码复制到原始窗口中,并将其粘贴到新窗口中。请确保将新窗口中的空网格替换为粘贴的网格。

这样你就可以让装饰层跟随鼠标在整个窗口中移动。

同样,在这里发布你的确切目标,这样我就可以给出一个更适合你特定需求的答案。

票数 0
EN

Stack Overflow用户

发布于 2012-04-12 15:41:07

也许他想绘制选择区域,我也有同样的问题,但你可以看到下面的链接,它是有效的。http://www.codeproject.com/Articles/22952/WPF-Diagram-Designer-Part-2

我发现你不能收到鼠标事件当背景是transparent.if你给装饰器一些背景,然后一切都是正常的。

代码语言:javascript
复制
protected override void OnRender(DrawingContext dc) {
    dc.DrawRectangle(bg, null, new Rect(RenderSize));
    dc.DrawRectangle(Brushes.Red, null, new Rect(start, end));
}

bg笔刷就像,

代码语言:javascript
复制
private Brush bg = new SolidColorBrush(Color.FromArgb(0x01, 0, 0, 0));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3371273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档