0
A
回答
3
你必須有窗口的列表,然後才能瓦他們的一種方式做,這是存儲在WeakReferences創建的所有窗口的靜態屬性,像這樣:
static List<WeakRef> _registeredWindows;
public void RegisterWindow(Window w)
{
_registeredWindows.Add(new WeakReference(w));
}
現在很容易平鋪所有可見的註冊窗口:
public void TileRegisteredWindowsHorizontally()
{
// Find visible registered windows in horizontal order
var windows = (
from weak in _registeredWindows
let window = weak.Target as Window
where window!=null && window.Visibility==Visibility.Visible
orderby window.Left + window.Width/2 // Current horizontal center of window
select window
).ToList();
// Get screen size
double screenWidth = SystemParameters.PrimaryScreenWidth;
double screenHeight = SystemParameters.PrimaryScrenHeight;
// Update window positions to tile them
int count = windows.Count();
foreach(int i in Enumerable.Range(0, count))
{
var window = windows[i];
window.Left = i * screenWidth/count;
window.Width = screenWidth/count;
window.Top = 0;
window.Height = screenHeight;
}
}
它是如何工作:第一個查詢掃描WeakRefs可見直播窗口和排序由他們的中心水平。末端的環路調整窗口位置。
+0
我知道這已經7年了,但是有一個特殊的原因,有一個'WeakReference'列表,而不是直接把'Window'列表到列表中? – mcy 2017-09-18 08:10:56
相關問題
- 1. XtraTabbedMdiManager佈局(平鋪垂直,水平平鋪,平鋪水平)
- 2. WPF和窗口平鋪
- 3. WPF中水平垂直WrapPanel
- 4. 如何垂直平鋪UIImage,而只在iOS上水平拉伸?
- 5. 最大化Emacs窗口的水平或垂直
- 6. 垂直到水平?
- 7. VSCode:多個水平和垂直面板
- 8. WPF窗口背景ImageBrush不平鋪
- 9. WPF水平列表框垂直填充
- 10. 水平或垂直翻轉JavaFX圖像
- 11. 調整div垂直或水平
- 12. 垂直和水平並行
- 13. 水平垂直只有線
- 14. Datagridview水平垂直按鈕
- 15. Unity3D垂直/水平霧/
- 16. 垂直和水平表
- 17. 滾動水平和垂直
- 18. 垂直水平RecyclerView ScrollView
- 19. Windows GDI:水平/垂直DPI
- 20. jquery滾動垂直/水平
- 21. 水平平鋪背景
- 22. 如何使垂直水平標籤
- 23. 如何垂直和水平居中DIV?
- 24. 如何水平和垂直居中div?
- 25. 如何水平和垂直對齊?
- 26. 垂直或水平t-sql表的多個設置?
- 27. 德爾福SDI應用程序 - 不垂直處理級聯/平鋪水平和平鋪?
- 28. WPF填充水平線或垂直線的矩形
- 29. 如何堆疊垂直或水平兩個MultiCheckboxField的平臺字段
- 30. 如何使WPF ListView項目水平和垂直重複?
我想我們需要在回答之前更多地瞭解您的應用程序。 – ChrisF 2010-06-19 16:19:20