![](/img/trans.png)
[英]Can I use Windows Identity Foundation 3.5 with .NET 4.5?
[英]user interface in .net 4.5 and windows presentation foundation
我仍在努力探索wpf ui創作。 我創建了一個用戶控件,該控件在擴展面板中有一個擴展器,擴展面板和兩個組合框,並以xaml硬編碼了相同的寬度。 只要擴展器寬度不變,它在設計時和運行時的外觀就不錯。 當擴展器標題更改為較長的文本時,擴展面板的拉桿和兩個組合框的大小相同。 它們停靠在右側,因此兩個組合框之間存在很大的差距。
我的問題是,有沒有一種方法可以將兩個組合框平均分配到擴展面板中。
碼:
<DockPanel Height="Auto"
DockPanel.Dock="Top"
HorizontalAlignment="Stretch" Name="lhsInput"
VerticalAlignment="Stretch" Width="Auto"
LastChildFill="False">
<ComboBox Height="23" Name="cboLHSItem"
Width="84" FontWeight="Normal"
Margin="1,0,0,0" Foreground="Black" FontFamily="Tahoma" />
<ComboBox Height="23" DockPanel.Dock="Right"
Name="cboLHSValues" Width="79" FontWeight="Normal"
IsEditable="False" Margin="0,0,1,0" FontFamily="Tahoma"
Foreground="Black" />
</DockPanel>
您可以使用Grid
代替DockPanel
,以下示例代碼:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<ComboBox Height="23" Name="cboLHSItem"
MinWidth="79"
Grid.Column="0"
FontWeight="Normal"
Foreground="Black" FontFamily="Tahoma" />
<ComboBox Height="23" MinWidth="79"
Grid.Column="1"
Name="cboLHSValues" FontWeight="Normal"
IsEditable="False" FontFamily="Tahoma"
Foreground="Black" />
</Grid>
DockPanel
可能正在為其子元素提供所需的寬度。 但是,使用Grid
及其RowDefinitions
和ColumnDefinitions
您可以指定是要“自動”寬度/高度還是要使用寬度/高度可用的任何值。 上面的代碼通過在ColumnDefinition
Width
設置為*
來指定使用適用於Child元素的任何寬度。
UPDATE
要了解WPF的不同面板如何工作,請參閱MSDN頁面: 面板概述
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.