XAML窗口allowtransparent =True和ComboBox.IsEditable=True在WinXP中

本文关键字:True WinXP IsEditable 窗口 allowtransparent XAML ComboBox | 更新日期: 2023-09-27 18:12:51

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

  1. TextBox的背景变为透明
  2. 文本框的文本消失
  3. ComboBox的边框消失

但是我设置了Combobox。可编辑=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>

XAML窗口allowtransparent =True和ComboBox.IsEditable=True在WinXP中

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

你也许可以作为一个解决方案,将Background设置为StackPanel,这可能会在控件中应用背景,使它们看起来不透明。

<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机器。你可以试一试,看看是否有帮助。