C#WPF-禁用的组合框应类似于标签

C#WPF-禁用的组合框应类似于标签,c#,wpf,combobox,styles,C#,Wpf,Combobox,Styles,当组合框被禁用时,我正在尝试更改wpf中组合框的样式。它应该看起来像纯文本(标签) 这是我的密码: <Style TargetType="{x:Type ComboBox}"> <Style.Triggers> <Trigger Property="IsEnabled" Value="false"> <Setter Property="Foreground" Value="Black" />

当组合框被禁用时,我正在尝试更改wpf中组合框的样式。它应该看起来像纯文本(标签)

这是我的密码:

<Style TargetType="{x:Type ComboBox}">
    <Style.Triggers>
        <Trigger Property="IsEnabled" Value="false">
            <Setter Property="Foreground" Value="Black" />
            <Setter Property="BorderBrush" Value="Black" />
            <Setter Property="BorderThickness" Value="0"></Setter>
            <Setter Property="Background" Value="{x:Null}" />

        </Trigger>
    </Style.Triggers>
</Style>

但它似乎不起作用。 有什么提示吗

您可以添加
ControlTemplate
,这样组合框将显示为 文本框(无边框、背景、切换按钮等)。但它会采取行动 作为combobx(具有下拉列表)。如果 控件被解除(因此它将显示为标签)


如果控件在特定条件下看起来像另一个控件,则ContentControl可以满足此类要求。您可以根据给定的条件切换到适当的内容

<ContentControl IsEnabled="True" /> // or IsEnabled="False"
//或IsEnabled=“False”
然后通过样式切换

<Style TargetType="{x:Type ContentControl}">
    <Style.Triggers>
            <Trigger Property="IsEnabled" Value="true">
                // combobox
            </Trigger>
            <Trigger Property="IsEnabled" Value="false">
                 // Label
            </Trigger>
    </Style.Triggers>
</Style>

//组合框
//标签

只需放置两个控件,组合框和标签。将每个组合框的Visibility属性绑定到您的布尔值,指示是否应启用组合框,以便一个在启用时可见,另一个在禁用时可见。

在其上显示标签。如何获取标签contentcontrol?您只需将组合框替换为contentcontrol即可。
<Style TargetType="{x:Type ContentControl}">
    <Style.Triggers>
            <Trigger Property="IsEnabled" Value="true">
                // combobox
            </Trigger>
            <Trigger Property="IsEnabled" Value="false">
                 // Label
            </Trigger>
    </Style.Triggers>
</Style>