当我在UWP中设置宽度小于70px时,组合框不完全可见



当我将宽度设置为小于70px时,组合框不完全可见?我尝试过的是?

ComboBox ComboBox=new ConboBox();
ComboBox.width=50;
ComboBox.height=27;

我想要组合框宽度必须是50px。

从ComboBox的默认样式来看,有一个名为BackgroundBorder占据了两列,其最小宽度设置为ComboBoxThemeMinWidth,等于64px,因此ComboBox最小宽度将为64px。如果要将其宽度设置为50,可以将"边界的最小宽度"设置为50或删除"最小宽度"属性,然后应用新样式。例如:

.xaml:

<Style x:Key="ComboBoxStyle1" TargetType="ComboBox">
......
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ComboBox">
<Grid x:Name="LayoutRoot">
......
<Border x:Name="Background" MinWidth="50" Background="{TemplateBinding Background}" BorderThickness="{TemplateBinding BorderThickness}" BorderBrush="{TemplateBinding BorderBrush}" CornerRadius="{TemplateBinding CornerRadius}" Grid.ColumnSpan="2" Grid.Column="0" Control.IsTemplateFocusTarget="True" Grid.Row="1"/>
...... 
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>

.cs:

ComboBox ComboBox = new ComboBox();
ComboBox.Width = 50;
ComboBox.Height = 27;
ComboBox.Style = (Style)this.Resources["ComboBoxStyle1"];

关于完整的ComboBoxStyle1,您可以参考此示例。

最新更新