【问题标题】:user interface in .net 4.5 and windows presentation foundation.net 4.5 和 windows Presentation Foundation 中的用户界面
【发布时间】:2013-12-02 14:39:27
【问题描述】:

我仍在努力了解 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吗?
  • 我不明白为什么不,如果使用网格而不是停靠面板,组合框会拉伸吗?
  • Maga,无法弄清楚您编辑了什么。我对 stackoverflow 还很陌生,仍在弄清楚一切是如何工作的。当我使用网格时,它可以工作。谢谢。一个

标签: c# .net wpf xaml combobox


【解决方案1】:

您可以使用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 设置为* 来指定使用可用于子元素的任何宽度。

更新

要了解 WPF 不同面板的工作原理,请参阅 MSDN 页面:Panels Overview

【讨论】:

    猜你喜欢
    • 2011-10-04
    • 1970-01-01
    • 2011-09-05
    • 2010-09-15
    • 2012-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多