XAML窗口AllowTransparency = True和ComboBox.IsEditable = True导致WinXP中的显示错误

时间:2014-07-14 09:01:32

标签: c# wpf xaml combobox

我有一个WPF窗口,我在其中设置了WindowStyle = None,allowsTransparency = true。我有一个可编辑的组合框和一个文本框,背景在窗口中是红色的。当我在Windows XP中运行应用程序时,文本框和组合框无法正确显示:

  1. TextBox的背景更改为透明
  2. TextBox的文字消失
  3. ComboBox的边框消失
  4. 但是我设置了Combobox.Editable = False或者在Win7中运行这个应用程序,没有问题。为什么? 请帮帮我,谢谢!

    我的环境: WinXP SP3 + .Net Framework 4.0

    代码:

    <Window x:Class="WpfApplication5.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="MainWindow" Height="200" Width="300"
            AllowsTransparency="True"
            WindowStyle="None"
            Background="White">
        <StackPanel>
            <TextBox Text="aaa" Height="30" Background="Red"></TextBox>
            <ComboBox IsEditable="True" Height="30">
                <ComboBoxItem>aaa</ComboBoxItem>
                <ComboBoxItem>bbb</ComboBoxItem>
                <ComboBoxItem>ccc</ComboBoxItem>
            </ComboBox>
        </StackPanel>
    </Window>
    

1 个答案:

答案 0 :(得分:0)

根据评论中的讨论并查看发布的图片,似乎一切都变得透明

您可能将解决方法设置为BackgroundStackPanel,这可能会在控件中应用背景,因此它们看起来不透明。

例如

<StackPanel Background="White">
    <TextBox Text="aaa"
             Height="30"
             Background="Red"></TextBox>
    <ComboBox IsEditable="True"
              Height="30">
        <ComboBoxItem>aaa</ComboBoxItem>
        <ComboBoxItem>bbb</ComboBoxItem>
        <ComboBoxItem>ccc</ComboBoxItem>
    </ComboBox>
</StackPanel>

我没有尝试这种解决方法,因为我没有WinXP机器。你可以尝试一下,看看是否有帮助。