2
開始一個空白WpfApplication並粘貼這App
類:爲什麼(WPF)窗口不是0.0像素寬?
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
var w = new Window
{
ResizeMode = ResizeMode.NoResize,
WindowStyle = WindowStyle.None,
Background = Brushes.Transparent,
};
Console.WriteLine(w.Width);
w.Width = 0.0;
//w.MinWidth = 0.0; // makes no difference
Console.WriteLine(w.Width);
w.Show();
Console.WriteLine(w.Width);
}
這只是創建一個新的空窗口(黑線)。
但爲什麼只是Show
在窗口中增加其'Width
到2
?
輸出:
NaN
0
2
也許某些Windows相關的限制,但我在哪裏可以找到此記錄在例如MSDN?
這是AvalonDock窗口布局計算中的一個bug的來源,我想知道我是否可以對「2
」進行硬編碼。
嘗試使用'w.MaxWidth'來限制寬度(而不是'MinWidth')。 – Sinatr
@Sinatr增加'w.MaxWidth = 0.0;'沒有區別。此外,窗口應該能夠在稍後變寬,但初始放置計算依賴於_wrong或weird_初始的'Width'值。 – jan
這是相當複雜的和大量的錯誤修復的主題。但它發生[這裏](http://referencesource.microsoft.com/#PresentationFramework/src/Framework/System/Windows/Window.cs,aff832999c41291b)。 –