所以我有一个如下所示的组合框,编码如下;
AllowsTransparency="True" Background="Transparent">
<Border CornerRadius="10" Background="Beige" BorderBrush="Aqua" BorderThickness="2">
<Grid>
<StackPanel VerticalAlignment="Center" HorizontalAlignment="Center">
<Label Name="lblText"></Label>
<ComboBox Name="cbxNumbers"></ComboBox>
<TextBox Name="txtNumbers" Visibility="Collapsed"></TextBox>
<Button HorizontalAlignment="Center" Name="btnDone"
Click="btnDone_Click">That's Right!</Button>
</StackPanel>
<Button VerticalAlignment="Bottom" HorizontalAlignment="Right" Margin="1"
FontSize="8" Name="btnChangeInput" Click="btnChangeInput_Click">Let me chose the number
</Button>
</Grid>
</Border>
然后在这样的代码中填充;
lblText.Content = Text;
cbxNumbers.Items.Add(5);
cbxNumbers.Items.Add(10);
cbxNumbers.Items.Add(50);
cbxNumbers.Items.Add(100);
cbxNumbers.Items.Add(1000);
cbxNumbers.Items.Add(10000);
cbxNumbers.Items.Add(100000);
cbxNumbers.Items.Add(1000000);
cbxNumbers.SelectedIndex = 0;
我的问题很明显,为什么我的Dropdown
显示在我的窗下?
更新
引用微软
感谢您报告此问题。虽然这个问题已经存在 调查,我们可能没有.NET 4.0中的修复程序。我们 当我们能够解决问题时,将再次更新此错误 未来发布。谢谢!
太棒了...任何解决方法的想法?
答案 0 :(得分:3)
AllowTransparency=TRUE
这是一个记录良好的错误。它只发生在运行Win XP的一些计算机上。
找到了一种解决方法here:
如前所述,这是XP上分层窗口的问题。有 在WPF级别可以做的事情并不多,无法解决这个问题 XP不再被服务,这不太可能 固定。但是,您可以采用可能的解决方法。
问题的根源是WPF使用了一种叫做“分层”的东西 Windows“当WindowStyle = None且AllowTransparency = True时。通常是 这样做的原因是实现自定义窗口chrome。最近 WPF团队发布了一个允许您获得自定义chrome的库 没有诉诸分层窗口。该库可在
获得http://code.msdn.microsoft.com/WPFShell
这不支持每像素不透明度,但确实允许 完全自定义渲染窗口,包括正常的区域 由系统管理。它可以让你设置窗口的半径 角落,但没有完全任意的形状。如果可以使用 这个库而不是AllowTransparency = True然后它应该解决 这个问题。
Microsoft发布了hotfix,但似乎没有修复与此问题相关的所有问题。