我正在使用WPF Popup控件。我希望它出现在我的应用程序窗口中,并锚定在窗口的右下角。弹出窗口的实际高度和宽度将根据正在显示的消息而变化。如何使WPF弹出窗口出现在应用程序的右下角?
如果很重要,弹出窗口的内容是一个边框,包装一个StackPanel,包含多个TextBlocks。
谢谢你的帮助。
我正在使用WPF Popup控件。我希望它出现在我的应用程序窗口中,并锚定在窗口的右下角。弹出窗口的实际高度和宽度将根据正在显示的消息而变化。如何使WPF弹出窗口出现在应用程序的右下角?
如果很重要,弹出窗口的内容是一个边框,包装一个StackPanel,包含多个TextBlocks。
谢谢你的帮助。
这是非常棘手的,并没有简单的答案。 关于你的问题,你的状态:
弹出窗口的实际宽度和高度将取决于正在显示 消息改变。
你应该不用担心,这是WPF Popup控件的默认行为。
的步骤,以确保你想要的位置是:
有关使用弹出的自定义配置的详细信息,请参阅:
我只是做了这样的事情,这真的不是那么靠谱,但它确实需要您的弹出自定义布局。当声明弹出窗口时,只需将PlacementMode属性设置为Custom,然后将CustomPopupPlacementCallback属性设置为您要使用的方法。
this.trayPopup.CustomPopupPlacementCallback = GetPopupPlacement;
private static CustomPopupPlacement[] GetPopupPlacement(Size popupSize, Size targetSize, Point offset)
{
var point = SystemParameters.WorkArea.BottomRight;
point.Y = point.Y - popupSize.Height;
return new[] { new CustomPopupPlacement(point, PopupPrimaryAxis.Horizontal) };
}
使用PlacementTarget,布局=左,水平/ VerticalOffset
<Popup IsOpen="{Binding ElementName=togglebutton, Path=IsChecked, Mode=TwoWay}"
PlacementTarget="{Binding ElementName=togglebutton}"
Placement="Left"
HorizontalOffset="{Binding ActualWidth, ElementName=togglebutton}"
VerticalOffset="{Binding ActualHeight, ElementName=togglebutton}">
这anchores在显示器的右下角这不一定是你的窗口的右下角弹出。 – sebingel