[英]How to set initial size in WPF Window docked in DockPanel
我想設置listview
初始大小。 ListView
作為最后一個子項停靠在DockPanel
,其最后一個子項具有LastChildFill = true。 窗口的SizeToContent設置為SizeToContent.Height。 我希望Window在用戶調整大小時更改大小,並且我希望ListView分別更改其大小。 但是我希望在窗口打開時ListView的高度為200。
如何實現呢?
我的解決方案
<Window x:Class="WPF.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Width="640" SizeToContent="Height"
Title="MainWindow" Loaded="Window_Loaded" >
<DockPanel LastChildFill="True">
<TextBlock DockPanel.Dock="Top">Other Text</TextBlock>
<ListView Name="listbox" />
</DockPanel>
</Window>
並在后面的代碼中:
private void Window_Loaded(object sender, RoutedEventArgs e)
{
SizeToContent = System.Windows.SizeToContent.Manual;
Height = 480;
}
如果可能,請計算列表框為200時所需的窗口高度。然后只需將窗口的高度設置為該數字即可,如下所示:
<Window x:Class="WPF.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Width="200" Height="225"
Title="MainWindow" >
<DockPanel LastChildFill="True" VerticalAlignment="Stretch">
<TextBlock DockPanel.Dock="Top">Other text</TextBlock>
<ListView BorderBrush="Orange" VerticalAlignment="Stretch" />
</DockPanel>
</Window>
如果這是不可能的(例如,您事先不知道其他元素的大小),請執行以下操作:
<Window x:Class="WPF.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Width="200" SizeToContent="Height"
Title="MainWindow" Loaded="Window_Loaded" >
<DockPanel LastChildFill="True">
<TextBlock DockPanel.Dock="Top">Other Text</TextBlock>
<ListView BorderBrush="Orange" Name="listbox" Height="200" />
</DockPanel>
</Window>
並在后面的代碼中:
private void Window_Loaded(object sender, RoutedEventArgs e)
{
Height = ActualHeight;
SizeToContent = System.Windows.SizeToContent.Manual;
listbox.Height = Double.NaN;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.