C# 背景w。不透明度提供不需要的边框
我有一个带有两个TabItems的TabControl,它在visual Studio 2013的visual designer中看起来是无缝的,但是当我运行我的解决方案时,会创建一个边框,我似乎无法摆脱它。在图像中,它看起来像是围绕着网格,但我关心的是选项卡标题和选项卡内容之间的边界 如果我替换背景的透明度,而使用纯色,问题就会消失。这似乎与半透明度有关 在可视化设计器中,它如下所示: 当我构建并运行时的结果是: 代码有点直截了当,将所有BorderThickness设置为0 更新C# 背景w。不透明度提供不需要的边框,c#,xaml,C#,Xaml,我有一个带有两个TabItems的TabControl,它在visual Studio 2013的visual designer中看起来是无缝的,但是当我运行我的解决方案时,会创建一个边框,我似乎无法摆脱它。在图像中,它看起来像是围绕着网格,但我关心的是选项卡标题和选项卡内容之间的边界 如果我替换背景的透明度,而使用纯色,问题就会消失。这似乎与半透明度有关 在可视化设计器中,它如下所示: 当我构建并运行时的结果是: 代码有点直截了当,将所有BorderThickness设置为0 更新 经过更多的
经过更多的测试,我得出结论,这取决于窗口大小。边界似乎来自抗锯齿,但将SnapsToDevicePixels设置为true并不能解决我的问题。没有答案,只是对问题进行了改进 根据这个问题,我做了很多实验,发现了另一个有趣的事实 堆栈面板在TabControl中时未连续放置Child 这里有一个例子。在此代码中 鉴于此代码:
<Grid Background="Black" Width="150">
<StackPanel>
<Border Background="White" Height="50" />
<Border Background="White" Height="50" />
<Border Background="White" Height="50" />
</StackPanel>
</Grid>
结果:
但是在TabControl中,比如:
<TabControl Background="Black" Width="150" >
<TabItem Header="Tab" >
<StackPanel>
<Border Background="White" Height="50" />
<Border Background="White" Height="50" />
<Border Background="White" Height="50" />
</StackPanel>
</TabItem>
</TabControl>
为什么它们之间存在边界线?我建议运行Snoop来分析此类问题。您是否检查了ItemContainerStyle模板。在Blend右键单击选项卡Control,编辑其他模板,编辑ItemContainerStyle?@modosansreves的副本-谢谢,非常好看的工具!更新的问题,看起来这取决于抗锯齿。通过调整窗口的大小,我可以使边框消失。但是,设置SnapsToDevicePixels并不能解决问题。我无法重现WPF.Net4.5 W8.1的行为。我唯一的边框是从黑色背景中变出来的,但不是这条灰线的边框。我的machin Win7在设计时没有显示,但在运行时显示如图所示。mhh可能是边界的baseStyle内容我的意思是,TabControl或TabItem可能有一个样式资源覆盖baseStyle,因此您可以使用该边界来挖掘正在运行的对象
<TabControl Background="Black" Width="150" >
<TabItem Header="Tab" >
<StackPanel>
<Border Background="White" Height="50" />
<Border Background="White" Height="50" />
<Border Background="White" Height="50" />
</StackPanel>
</TabItem>
</TabControl>