【问题标题】:XAML Window AllowsTransparency=True and ComboBox.IsEditable=True causes display error in WinXPXAML Window AllowsTransparency=True 和 ComboBox.IsEditable=True 在 WinXP 中导致显示错误
【发布时间】:2014-09-04 03:46:37
【问题描述】:

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

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

但是我设置了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>

【问题讨论】:

  • 是否有异常或错误信息?还是应用程序崩溃了?
  • 没有异常,没有错误信息,应用程序没有崩溃。只是 TextBox 和 ComboBox 显示不正确。
  • 显示不正确是什么意思?也许您可以发布一些图片以进行正确和不正确的显示。我这里没有 WinXP,所以我不能自己尝试,但也许我可以帮助您确定原因和解决方案。
  • 我没有足够的声誉来发布图片...您可以访问此图片链接:d.pcs.baidu.com/thumbnail/…

标签: c# wpf xaml combobox


【解决方案1】:

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

您也许可以将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 机器。您可以尝试一下,看看是否有帮助。

【讨论】:

  • 我试过了,但是没有效果。 TextBox 仍然是透明的。
  • 看看能不能找到win xp的机器,到时候你可以试试看一些windows API来设置文本框窗口的样式。
  • @LiXiang 我认为你遇到了这里提到的错误Overlapping layered windows are not displayed in the correct order in Windows Server 2003 or in Windows XP。试试这个修补程序,看看是否能解决您的问题。
  • 感谢您的回复。我发现此修补程序包含在 SP3 中。我已经安装了 SP3,但它并没有解决我的问题。
  • 我想你可能会在 WinXP 中使用Clip 而不是AllowsTransparency
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-09-12
  • 2011-02-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-22
相关资源
最近更新 更多