C# XAML窗口AllowTransparency=True和ComboBox.IsEdit=True会导致WinXP中出现显示错误
我有一个WPF窗口,我在其中设置了WindowStyle=None,allowTransparency=true。我有一个可编辑的组合框和一个背景为红色的文本框。在Windows XP中运行应用程序时,文本框和组合框无法正确显示: 文本框的背景更改为透明 文本框的文本消失 组合框的边框消失 但是我设置Combobox.Editable=False或者在Win7中运行这个应用程序,没有问题。为什么? 请帮帮我,谢谢 我的环境: WinXP SP3+.Net Framework 4.0 代码:C# XAML窗口AllowTransparency=True和ComboBox.IsEdit=True会导致WinXP中出现显示错误,c#,wpf,xaml,combobox,C#,Wpf,Xaml,Combobox,我有一个WPF窗口,我在其中设置了WindowStyle=None,allowTransparency=true。我有一个可编辑的组合框和一个背景为红色的文本框。在Windows XP中运行应用程序时,文本框和组合框无法正确显示: 文本框的背景更改为透明 文本框的文本消失 组合框的边框消失 但是我设置Combobox.Editable=False或者在Win7中运行这个应用程序,没有问题。为什么? 请帮帮我,谢谢 我的环境: WinXP SP3+.Net Framework 4.0 代码: 根据
根据评论中的讨论和发布的图片,似乎一切都变得透明了 作为一种解决方法,您可以将背景设置为StackPanel,这可以将背景应用于其中的控件,使其看起来不透明 乙二醇
我没有尝试这种解决方法,因为我没有WinXP机器。您可以尝试一下,看看是否有帮助。是否有任何异常或错误消息?或者应用程序只是崩溃?并没有异常,并没有错误消息,应用程序并没有崩溃。只是文本框和组合框显示不正确。你说的显示不正确是什么意思?也许你可以发布一些正确和错误显示的图片。我这里没有WinXP,所以我不能自己尝试,但也许我可以帮你找出原因和解决方法。我没有足够的声誉来发布图片。。。你能访问这个图片链接吗:我试过了,但没有效果。TextBox仍然是透明的。让我们看看我是否能找到一台win xp机器,在那之前,你可以尝试找出一些windows API来设置TextBox窗口的样式。@LiXiang我想你碰到了这里提到的一个bug。尝试此修补程序,看看是否可以解决您的问题。谢谢您的回复。我发现这个修补程序包含在SP3中。我已经安装了SP3,但它并没有解决我的问题。我想你可能会在WinXP中使用Clip而不是AllowTransparency。
<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>
<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>