微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MaterialDesignThemes ComboBox Selected Item 模板问题

如何解决MaterialDesignThemes ComboBox Selected Item 模板问题

我正在设计 WPF ComboBox 的样式,以便 ComboBoxItems 有一些额外的数据。下拉菜单中的项目看起来很棒,但是一旦被选中,显示的项目就不会拉伸/填充组合框 - 它全部向左倾斜。我已经做了足够的挖掘来弄清楚这与应用于控件的 MaterialDesign 主题有关。如果演示项目中没有引用 MeterialDesign,代码将按预期工作。

<ComboBox Width="150" 
        Margin="2" 
                  
        HorizontalContentAlignment="Stretch" <!-- No Effect //-->
                  
        materialDesign:HintAssist.Hint="Select Item"
                  
        ItemsSource="{StaticResource ExampleItems}" >
    <ComboBox.ItemTemplate>
        <DataTemplate>
            <Grid>
                <Grid.ColumnDeFinitions>
                    <ColumnDeFinition Width="*" />
                    <ColumnDeFinition Width="Auto" />
                </Grid.ColumnDeFinitions>

                <TextBlock Grid.Column="0" Text="{Binding displayText}" />

                <Ellipse Grid.Column="1" Width="10" Height="10" Fill="{Binding Color}"/>
            </Grid>
        </DataTemplate>
    </ComboBox.ItemTemplate>

    <!-- No Effect //-->
    <!--<ComboBox.ItemContainerStyle>
    <Style targettype="ComboBoxItem" BasedOn="{StaticResource MaterialDesignComboBoxItemStyle}">
        <Setter Property="HorizontalContentAlignment" Value="Stretch" />
    </Style>
</ComboBox.ItemContainerStyle>-->
</ComboBox>

Incorrect Selected Item and Correct drop down items

我已经尝试了几乎所有我能做的事情,但没有运气 - 包括 DataTemplate、堆栈面板、停靠面板等中的各种控件......

在这里创建了一个最低限度的可重现示例:ComboBoxDemo Project

我已经包含了从 Blend 中提取的 ComboBox 样式,以尝试深入了解 MaterialDesign 在普通模板之上所做的事情。我看到所选项目有一个 ItemContainerStyle,但它看起来像是将 Horizo​​ntialContentAlignment 绑定到链上。手动将其设置为 Stretch 没有帮助。

所以希望那里的 Xaml 专家可以查明问题...

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。