如何解决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>
我已经尝试了几乎所有我能做的事情,但没有运气 - 包括 DataTemplate、堆栈面板、停靠面板等中的各种控件......
我在这里创建了一个最低限度的可重现示例:ComboBoxDemo Project
我已经包含了从 Blend 中提取的 ComboBox 样式,以尝试深入了解 MaterialDesign 在普通模板之上所做的事情。我看到所选项目有一个 ItemContainerStyle,但它看起来像是将 HorizontialContentAlignment 绑定到链上。手动将其设置为 Stretch 没有帮助。
所以希望那里的 Xaml 专家可以查明问题...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。