WPF MVVM:整数的组合框高度不同

法师

我正在开发一个遵循 MVVM 的 WPF 应用程序。我在应用程序中有两个组合框。一个绑定到整数列表,另一个绑定到字符串列表。问题是组合框的高度不同(见下图)。知道为什么高度不同吗?两个组合框都没有涉及样式。

在此处输入图片说明

看法:

<UserControl.Resources>
    <Style TargetType="ComboBox" >
       <Setter Property="Margin" Value="5" />
    </Style>
    <Style TargetType="TextBlock" >
       <Setter Property="Margin" Value="5" />
       <Setter Property="VerticalAlignment" Value="Center" />
    </Style>
</UserControl.Resources>
...
<StackPanel>
    <TextBlock Text="{x:Static p:Resources.OutputLayersAsText}" />
    <ComboBox ItemsSource="{Binding StringCollection}" />
    <TextBlock Text="{x:Static p:Resources.IgzStatAreaSizeText}" />
    <ComboBox ItemsSource="{Binding IntegerCollection}" />
</StackPanel>

视图模型:

private ObservableCollection<string> _stringCollection;
public ObservableCollection<string> Stringcollection => _stringCollection ?? (_stringCollection = new ObservableCollection<string>
{
     ".igz", ".png+.png", ".jpg+.png"
});

private ObservableCollection<int> _integerCollection;
public ObservableCollection<int> IntegerCollection => _integerCollection ?? (_integerCollection = new ObservableCollection<int>
{
    8, 12, 16, 24, 32, 48, 64, 96, 128
});

我还尝试了另一个带有枚举集合的组合框,它的高度与整数组合框的高度相似。

克莱门斯

显然,默认的 TextBlock 样式也应用于 ComboBox 可视化树中的 TextBlock。不知道为什么它只影响那些显示整数的项目,而不影响那些显示字符串的项目。

由于您已经有了 ComboBox 样式,您可以通过明确定义一个 ItemTemplate 来轻松避免这种行为:

<Style TargetType="ComboBox" >
    <Setter Property="Margin" Value="5" />
    <Setter Property="ItemTemplate">
        <Setter.Value>
            <DataTemplate>
                <TextBlock Text="{Binding}"/>
            </DataTemplate>
        </Setter.Value>
    </Setter>
</Style>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

WPF MVVM组合框IsEditable =“ True”

来自分类Dev

WPF MVVM 组合框 SelectionChanged/SelectedItem

来自分类Dev

WPF组合框ItemsSource的不同dataContext

来自分类Dev

WPF-MVVM:SelectionChanged之后的组合框值

来自分类Dev

WPF MVVM中组合框的默认值

来自分类Dev

WPF获取组合框所选文本(MVVM)

来自分类Dev

WPF组合框问题

来自分类Dev

WPF组合框值

来自分类Dev

WPF MVVM填充另一个组合框的组合框OnPropertyChanged

来自分类Dev

WPF多列组合框

来自分类Dev

清除WPF中的组合框

来自分类Dev

wpf datagrid组合框列

来自分类Dev

WPF组合框验证规则

来自分类Dev

WPF多列组合框

来自分类Dev

wpf datagrid组合框列

来自分类Dev

从服务填充WPF组合框

来自分类Dev

WPF组合框未绑定

来自分类Dev

如何在WPF MVVM中使用外键绑定组合框

来自分类Dev

组合框和图表可见性(MVVM和WPF)

来自分类Dev

使用 VB.Net MVVM (WPF) 通过 DataSet 从 ObservableCollection 加载组合框

来自分类Dev

无法将属性作为枚举绑定到 wpf mvvm 中的组合框

来自分类Dev

WPF MVVM 组合框选择已更改

来自分类Dev

WPF列表框与组合框

来自分类Dev

WPF MVVM文本框验证

来自分类Dev

在WPF / MVVM上导航/加载不同的视图

来自分类Dev

WPF将字典绑定到组合框

来自分类Dev

动态更改WPF组合框的ItemsSource

来自分类Dev

WPF组合框与List <string>的绑定

来自分类Dev

WPF,选择后如何重置组合框