我正在使用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