回答
使用Placement和PlacementTarget屬性來定位它相對於窗口根目錄的任何面板。所以,如果我有一個Grid
,StackPanel
等包含在所謂MainPanel
窗口中的所有其他的「東西」,我這樣做:
<Popup
PlacementTarget="{Binding ElementName=MainPanel}"
Placement="Center"
>
首先,您可以使用System.Windows.SystemParameters
類的靜態屬性FullPrimaryScreenHeight
,FullPrimaryScreenWidth
來獲取屏幕的高度和寬度。然後,您可以在顯示Popup控件時使用寬度和高度來設置Top
和Left
屬性。
有點像。
double primScreenHeight = System.Windows.SystemParameters.FullPrimaryScreenHeight;
double primScreenWidth = System.Windows.SystemParameters.FullPrimaryScreenWidth;
_yourControl.Top = (primScreenHeight - _yourControl.Height)/2;
_yourControl.Left = (primScreenWidth - _yourControl.Width)/2;
使用柵格作爲容器和對齊將正常工作對您:
<Popup IsOpen="True">
<Grid Name="canvasMain">
<StackPanel VerticalAlignment="Center" HorizontalAlignment="Center">
...
</StackPanel>
</Grid>
</Popup>
這麼簡單,但完美的作品 – BastanteCaro 2011-06-17 14:27:47
我試過這個,它不起作用。這看起來像是中心彈出框的內容,而不是彈出框本身。 – 2016-07-16 21:29:41
這些答案都不適用於我,部分原因是我沒有Popup的大小。我最後在代碼背後做了如下:
var popup = new Popup
{
Child = new YourUIControlHere(),
Placement = PlacementMode.Center,
PlacementRectangle = new Rect(new Size(
SystemParameters.FullPrimaryScreenWidth,
SystemParameters.FullPrimaryScreenHeight))
};
這可以很容易地擴展到XAML通過添加一個屏幕大小的綁定。
一個明顯的增強是使用當前的屏幕支持多顯示器。但是,獲取當前的窗口尺寸是相當多的工作。
這對我來說是正確的解決方案! – 2017-02-23 11:27:45
- 1. 將彈出控件放置在屏幕和文本塊文本中心
- 2. 在屏幕中心放置ChildWindow控件
- 3. 從點擊中心縮放彈出中心屏幕
- 4. 沿着屏幕底部放置WPF彈出框
- 5. 如何將彈出窗口放置在屏幕的右上角
- 6. 設置彈出格在屏幕的中心
- 7. 將屏幕位置設置爲屏幕中心
- 8. WindowStatupLocation =中心屏幕沒有在WPF
- 9. 如何在屏幕和疊加/背景的中心彈出式全屏幕高
- 10. 如何將MapView的縮放控件放置在屏幕上的其他位置?
- 11. 如何在C#中的運行時將控件移動到屏幕中心?
- 12. Winjs飛出屏幕中心
- 13. 如何在調整屏幕大小時將div放置在中心位置?
- 14. 如何在屏幕上顯示彈出中心
- 15. 在屏幕中心啓動Facebook共享彈出菜單
- 16. 的Javascript:在屏幕器(Chrome)的中心開彈出
- 17. 修復在屏幕中心的iframe彈出
- 18. 彈出窗口顯示在屏幕中心和上下文外
- 19. 無法將Latlong放置在彈出的地圖中心
- 20. 試圖將JS彈出窗口放置在頁面中心?
- 21. 將比屏幕寬的div對齊中心到屏幕中心
- 22. TextView將右側控件推出屏幕
- 23. win32 C++在屏幕上放置圖像
- 24. 在iPhone的鎖定屏幕中設置標籤播放控件
- 25. 將Editfield添加到彈出屏幕
- 26. Bootstrap的彈出屏幕脫離屏幕
- 27. 拖動WPF彈出控件
- 28. C++在2D座標中放大屏幕中心
- 29. OpenGLES objective-c屏幕沒有彈出
- 30. 是否可以將Web視圖放在主屏幕控件中?
如果你使用一系列嵌套的用戶控件? – landoncz 2014-01-16 19:01:18
問題是屏幕的中心,而不是面板或窗口的中心。 – 2016-04-30 02:49:18
這並不回答問題。這將彈出的左上角放在屏幕中間,它不會居中彈出 – Brandon 2016-05-27 15:23:10