簡體   English   中英

.net 4.5和Windows Presentation Foundation中的用戶界面

[英]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及其RowDefinitionsColumnDefinitions您可以指定是要“自動”寬度/高度還是要使用寬度/高度可用的任何值。 上面的代碼通過在ColumnDefinition Width設置為*來指定使用適用於Child元素的任何寬度。

UPDATE

要了解WPF的不同面板如何工作,請參閱MSDN頁面: 面板概述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM