问题描述
ComboBox 的 SelectedItem 中的文本被剪切。 在示例中“手动加载”---->>“手动加载” 我尝试在模板中设置 Margin=0 和 Padding=0(如本主题中的建议“https://stackoverflow.com/questions/48291742/c-sharp-wpf-comboBox-selected-item-text-cut-off ") 但没有任何效果
我的组合框
<ComboBox x:Name="cmbLoad" Padding="5,0" Grid.Column="1" ItemTemplate="{StaticResource ResourceKey=Id_Name_Template}" SelectionChanged="Cmb_Load_SelectionChanged" HorizontalAlignment="Stretch" HorizontalContentAlignment="Left"/>
我的模板
<DataTemplate x:Key="Id_Name_Template" >
<StackPanel >
<Grid>
<Grid.ColumnDeFinitions>
<ColumnDeFinition />
<ColumnDeFinition />
<ColumnDeFinition />
</Grid.ColumnDeFinitions>
<TextBlock Grid.Column="0" Margin="0" Padding="0" VerticalAlignment="Center">
<Run FontWeight="Bold" Text="{Binding Id}"/>
</TextBlock >
<TextBlock Grid.Column="1" Text="-" Margin="5,5,0" Padding="0"/>
<TextBlock Grid.Column="2" Margin="0" Padding="0" VerticalAlignment="Center" FontStyle="Italic" Text="{Binding Name}" />
</Grid>
</StackPanel>
</DataTemplate>
结果
解决方法
去掉StackPanel
并设置Width
的{{1}}:
ColumnDefinitions
,
您可以改用 StackPanel
:
<DataTemplate x:Key="Id_Name_Template" >
<StackPanel Orientation="Horizotnal">
<TextBlock Text="{Binding Id}" FontWeight="Bold"/>
<TextBlock Text=" - "/>
<TextBlock Text="{Binding Name}" FontStyle="Italic"/>
</StackPanel>
</DataTemplate>
或者只是 Run
本身中的 TextBox
:
<DataTemplate x:Key="Id_Name_Template" >
<TextBlock VerticalAlignment="Center">
<Run Text="{Binding Id}" FontWeight="Bold"/><Run Text=" - "/><Run Text="{Binding Name}" FontStyle="Italic"/>
</TextBlock>
</DataTemplate>