问题标签 [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 投票
2 回答
3571 浏览

wpf - XAML-如何固定图像相对于显示窗口右侧的位置?

我正在开发一个使用 XAML 编写/显示 GUI 的应用程序。目前,我在 GUI 上显示了大部分所需的元素,现在正在处理布局——将各种元素定位在特定的位置。

大多数控件/按钮等都向左对齐,并保持“绑定”到 GUI 的左侧,即使我通过将窗口的左边缘进一步向左拖动来调整窗口大小(图标等移动到保持与窗口边缘的相对距离)。

但是,我有一个要向右对齐的元素,以便它将保持“绑定”到 GUI 的右侧 - 如果我通过将其右侧边缘进一步向右拖动来调整窗口大小,它应该移动以保持它与窗口边缘的相对距离......此刻,该元素停留在我绘制它的位置(即距离左侧 900 像素),无论窗口的大小是多少 -因此,如果我将窗口的宽度调整为小于 900 像素,则无法看到该元素。

我用于要绑定到 GUI 左侧的元素的 XAML 标记是,例如:

我尝试用于绑定到 GUI 右侧的元素的 XAML 标记是:

但是,将 to 设置HorizontalAlignmentRight, 实际上并没有将文本按钮移动到右侧 - 它仍然绑定到显示屏的左侧......我发现将其向右移动的唯一方法是设置一个大的它的'x'位置的值,即Margin="900, 0, 0, 0",但是该位置与窗口的大小无关,所以如果我将右侧边缘向左拖动太远,则该按钮位于窗口的显示区域之外,所以我看不出来...

如何设置按钮的属性,使其位置相对于显示窗口的右侧边缘?

编辑

所有有问题的元素都显示在相同的<Grid><StackPanel>标签内,即

0 投票
1 回答
181 浏览

c# - 在控制模板中定位 texblocks

我试图在验证异常的文本旁边制作感叹号。有我的自定义模板有我的 XAML:

我想要文本左侧的感叹号,无论如何我都无法到达它,堆栈面板及其方向已更改,停靠面板等。使用此代码,它看起来: 它看起来如何

在一些不同的变量中,它可以在文本框的左侧任何提示?

0 投票
1 回答
155 浏览

c# - How to position WPF control next to the control with current focus?

I have a typical edit form (user control), with several input boxes. I need a ListBox which must show right below the TextBox with current focus, so it needs to move dynamically. I tried some binding, but nothing happens

0 投票
0 回答
169 浏览

c# - PopUp 控件不随 Window 移动,而在我们调整窗口大小后移动窗口

我面临一个 WPF 弹出控件问题。
当我们调整窗口大小并移动它时,PopUp 控件保持在它之前打开的位置,并且不随窗口移动
那么这个问题的解决方案是什么。请提供解决方案的代码片段(如果有)。谢谢 :)

弹出控件的Xaml代码如下:

我们在地图上点击显示弹出控件的图标。点击事件的代码如下。

0 投票
2 回答
876 浏览

c# - 如何在wpf中计算弹出控件和屏幕顶部之间的距离?

我们使用了 WPF 弹出控件。

我们需要知道如何计算 Popup 控件距离屏幕顶部的距离/高度或 Y 坐标。那么,如何计算呢?

请参阅附图以获取问题截图。

用于弹出问题的图像

我尝试了以下两种解决方案:

第一种解决方案------------------------------------------------ --------

问题:它总是返回与 relativePoint.X = 3.0 和 relativePoint.Y = 25.96 相同的坐标
我的弹出控件在地图图标的右侧打开,如图所示......所以当我点击不同的地图图标时,弹出位置相应地改变。所以它应该返回不同的地理坐标。

第二种解决方案------------------------------------------------ ----

问题:这个解决方案也有同样的问题..每次位置.X = 3.0 和位置.Y = 49.0 时它总是返回相同的地理坐标

0 投票
1 回答
890 浏览

wpf - 如何使工具提示出现在固定位置(在这种情况下:页面左下角)

我在“旋转木马”中有几个项目(以矩形的形式)(这基本上只是一个花哨的 PathListBox)

当鼠标悬停在其中一个矩形上时,会出现一个带有一些信息的工具提示。矩形的外观由 DataTemplate 确定。此 DataTemplate 的 xaml 的开头显示在此处:

为了完整起见,这是“Box512”的 xaml:

工具提示应该显示在页面左下角的固定位置,靠近名为“Box512”的 XAML 元素。

为此,我使用了工具提示的“PlacementTarget”-Property。我尝试过(如您在上面的代码中所见):

这没有用。而不是在页面的左下角,工具提示仍然显示在鼠标悬停的矩形上。然后我尝试了:

...这也不起作用。

所以我的问题是:如何使工具提示出现在 Box512 附近的同一位置,而与鼠标悬停在哪个矩形上无关?


****************************附加信息******************** ***

MainWindow.xaml:

主窗口.cs:

GraphItems 列表被定义为 MainViewModel 的一个属性:

“Text”属性与 GraphNode 类相关联:

GraphNode.cs:

0 投票
1 回答
44 浏览

c# - WPF - 将控件从左边缘扩展到窗口边缘

我目前正在使用 Popup 控件作为工具提示的屏幕 (C#/WPF) 以提供附加功能(例如复制和粘贴数据)。当单元格悬停在网格视图中时,弹出窗口会显示。我想要完成的是在单元格正下方显示弹出窗口,并允许它向右扩展但不超过屏幕边缘。

到目前为止,我已经能够让它显示在单元格下方并成为单元格的确切宽度。但是,我无法让它扩展到屏幕右侧。我所有的尝试要么没有结果,要么弹出窗口扩大了屏幕的整个宽度。

我一直在尝试将这些SystemParameters属性与element.PointToScreen(new Point(0, 0))没有成功的结合使用。我也尝试过PresentationSource.FromVisual(gridCell)使用 进行一些操作并获得目标点source.CompositionTarget.TransformFromDevice.Transform(),但同样没有成功。

显示位于特定点并扩展(向右)到屏幕边缘的 Popup 控件的最简单方法是什么?TIA