我有一个带有一堆值的组合框.我想在选择"列表"时更改组合框的宽度.这是我目前的xaml:
<ComboBox Name="DataTypeSelector" ItemsSource="{Binding ElementName=DataItemsBuildWindow, Path=DataContext.Types}" SelectedValue="{Binding DataType}" HorizontalAlignment="Stretch" Width="160">
<ComboBox.Style>
<Style TargetType="ComboBox">
<Style.Triggers>
<DataTrigger Value="List" Binding="{Binding SelectedValue, ElementName=DataTypeSelector, Converter={StaticResource ToStringConverter}}">
<Setter Property="Width" Value="80" />
</DataTrigger>
</Style.Triggers>
</Style>
</ComboBox.Style>
</ComboBox>
Run Code Online (Sandbox Code Playgroud)
由于某种原因,这不起作用.
如果我将Setter更改为:
<Setter Property="Visibility" Value="Hidden" />
Run Code Online (Sandbox Code Playgroud)
然后在选择"列表"时隐藏组合框.为什么它不适合宽度?
在元素上显式设置的属性(此处为Width="160":)将覆盖所有样式.您还需要将默认宽度(160)移动到Style中:
<ComboBox Name="DataTypeSelector"
ItemsSource="{Binding ElementName=DataItemsBuildWindow, Path=DataContext.Types}"
SelectedValue="{Binding DataType}"
HorizontalAlignment="Stretch" >
<ComboBox.Style>
<Style TargetType="ComboBox">
<Setter Property="Width" Value="160" />
<Style.Triggers>
<DataTrigger Value="List" Binding="{Binding SelectedValue, ElementName=DataTypeSelector, Converter={StaticResource ToStringConverter}}">
<Setter Property="Width" Value="80" />
</DataTrigger>
</Style.Triggers>
</Style>
</ComboBox.Style>
</ComboBox>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
905 次 |
| 最近记录: |