问题标签 [wpf-positioning]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
6116 浏览

wpf - 如何在父画布中定位 UserControl

我想把这个 UserControl 放在 Canvas.Left="168", Canvas.Top="213"。

但是,控件出现在一个角落。我该怎么办?

如果我将值放在此类的使用点,则值将返回为 NaN 在这种情况下,我怎样才能获得正确的左值和上值?

用法:

用户控制:

0 投票
6 回答
129092 浏览

wpf - 在wpf中获取窗口内元素的绝对位置

我想在双击时获取元素相对于窗口/根元素的绝对位置。元素在其父元素中的相对位置似乎是我所能达到的,而我试图达到的是相对于窗口的点。我已经看到了如何在屏幕上而不是在窗口中获取元素点的解决方案。

0 投票
1 回答
6921 浏览

wpf - 如何在 WPF Grid 列中定位元素?

假设我想在 Grid 控件的第 3 列中的坐标 x=20, y=5 处放置一个元素。我该怎么做呢?我是否需要在列中添加 Canvas 面板,然后向其中添加控件?

0 投票
1 回答
1199 浏览

wpf - Image 和 InkPresenter 之间的 Z 顺序

我有这个 CustomControl 包含一个InkPresenter和一个Image. 图像有一个AdornerDecorator,因为我计划稍后在图像中添加一个装饰器。我已将 的 设置Canvas.ZIndexImage高于 ,InkPresenter以便InkPresenter将 绘制在图像上。

问题是,当我尝试从InkPresenter图像下方绘制笔划收集和显示墨水时。(我曾经使用 Snoop 来检查可视化树,并且在InkPresenter上方Image)我不知道为什么会这样。这里有谁知道为什么Image画在上面InkPresenter?任何帮助深表感谢。

我的代码如下:

通用的.xaml

我已将、等事件附加到 ,MouseDown因为我计划稍后将这些事件的处理移至其他类。MouseUpMouseMoveInkPresenter

不幸的是,这些事件没有被捕获,因为Image被绘制在顶部,InkPresenter所以它获取事件而不是InkPresenter. 有谁知道为什么会这样?

任何帮助深表感谢。

0 投票
1 回答
1819 浏览

wpf - 如何获取 WPF 弹出窗口的实际宽度

我试图将Popup元素放置在相对于Placement控件的特定位置。

为了实现这一点,我需要找出ActualWidth弹出控件的。但是尝试在显示弹出窗口之前或之后获取此值(IsOpen = True)它总是返回 0。

不幸的是,我无法硬编码弹出窗口的大小。

我怎样才能确定ActualWidth

0 投票
4 回答
2267 浏览

.net - Wpf - centering on primary desktop

I know WPF has a "CenterScreen" value for centering a window on the desktop. However, on dual monitor, that is not very pleasant.

How do I center on primary monitor? Do i need to go through the song and dance of detecting the primary desktop, get its geometry, etc, or is there a better way?

0 投票
5 回答
88212 浏览

wpf - 更改 WPF 窗口的启动位置

我想在屏幕的右上角打开一个 WPF 窗口。

现在我可以通过打开窗口然后移动它(通过 user32.dll 中的 movewindow)来实现。但是,这种方法意味着窗口在其默认位置打开,完全加载,然后移动到右上角。

我怎么能改变它,以便我可以指定窗口的初始位置和大小?

0 投票
2 回答
12856 浏览

wpf - 动态更改 WPF 窗口的启动位置

这是 [此处][1] 已回答问题的后续问题。

WPF 窗口的启动位置在 XAML 中定义。现在我想知道如何在代码中更改这些属性?例如,我可以这样说:

Window1.Top = 40 在窗口加载事件处理程序中?或者我需要为它设置哪个窗口事件来动态改变起始位置?

目标是在渲染之前动态设置窗口开始位置。

0 投票
2 回答
6880 浏览

wpf - 将值绑定到 XAML 中控件的绝对位置

有没有办法使用 XAML 将值绑定到控件的绝对位置?

我有一个Line元素,我想Button在我的应用程序中的两个 s 之间绘制。我在想将 的起点绑定Line到 的位置Button将是实现这一点的最简单方法,使用RelativeSource某种方式。

0 投票
1 回答
6374 浏览

wpf - 在 WPF 中相对于父级尺寸定位装饰器

我正在尝试根据装饰元素的父级尺寸来定位 Adorner。例如,我有一个文本框。我想装饰这个文本框,使它看起来像这样:

如何放置装饰器 http://img707.imageshack.us/img707/9840/fig1.png

文本框放置在画布对象中,如果有足够的可用空间,则将装饰器(半透明圆角正方形)与文本框的底部边缘对齐。当用户单击文本框时启动装饰器。

目前画布及其内容(文本框)托管在 WinForms 表单中 - 因此 WPF 由 ElementHost 控件处理。

但是当我运行我的代码时,当第一次单击文本框时,它会显示与文本框顶部边缘对齐的装饰器(见下图)。之后它会正确定位自己(如上图)有谁知道为什么会这样?

装饰者如何定位 http://img14.imageshack.us/img14/4766/fig2v.png

我在下面粘贴了代码:

TextBoxAdorner.cs - 这是装饰器逻辑