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. 水平或垂直
- 3. 垂直或水平
- 4. WPF和窗口平鋪
- 5. WPF中水平垂直WrapPanel
- 6. 如何垂直平鋪UIImage,而只在iOS上水平拉伸?
- 7. 最大化Emacs窗口的水平或垂直
- 8. 垂直到水平?
- 9. WPF窗口背景ImageBrush不平鋪
- 10. VSCode:多個水平和垂直面板
- 11. WPF水平列表框垂直填充
- 12. Listview水平垂直線visibitly WPF
- 13. 水平或垂直翻轉JavaFX圖像
- 14. 垂直或水平滾動頁面
- 15. 檢測垂直或水平位置iOS
- 16. Android:LinearLayout - 不是垂直或水平指定
- 17. 調整div垂直或水平
- 18. 滾動的TImage水平或垂直
- 19. 水平平鋪背景
- 20. 水平和垂直ViewPager
- 21. SQL查詢;水平垂直
- 22. 從水平到垂直
- 23. 垂直和水平GridSplitter
- 24. 垂直水平RecyclerView ScrollView
- 25. 垂直和水平表
- 26. 垂直和水平視圖
- 27. 垂直水平導航
- 28. 垂直和水平對齊
- 29. 水平垂直只有線
- 30. 水平/垂直滾動
我想我們需要在回答之前更多地瞭解您的應用程序。 – ChrisF 2010-06-19 16:19:20