WPF平铺背景错位

时间:2010-01-11 04:17:58

标签: wpf xaml background expression-blend

我们有一个非常复杂的WPF应用程序(我在这里无法显示),它的某个用户控件的平铺背景不正确。我无法在“干净​​”的WPF项目中重现此问题,但会尝试在此图片中说明问题:

WPF Background Tile Misalignment
(来源:kintespace.com

灰色区域表示用户控件,黑色和红色检查表示用户控件中的平铺背景 。白色背景代表托管控件的窗口。 VisualBrush在这里使用,但DrawingBrush也存在同样的问题。我希望使用ImageBrush

你可以打开一个“干净的”WPF项目并构建一些会导致平铺背景错位的东西吗?

3 个答案:

答案 0 :(得分:0)

如果用户控件的布局根目标具有-10左边距和-10上边距,则可以执行此操作。在用户控件的布局根上平铺了backgoround,所以它看起来像对齐问题而不是画笔问题。

答案 1 :(得分:0)

此问题与平铺背景填充到托管窗口中UserControl实例的计算高度有关。我仍然无法在新项目中复制此问题,但它已“解决”(通过在用户控件中水平而不是垂直堆叠面板)。

答案 2 :(得分:0)

以下两种诊断技术在您的情况下非常有用:

  1. 进行复杂项目,制作副本,然后开始撕掉大部分代码和XAML,直到问题消失。然后把最后一节放回去,轻轻地把东西撕掉。重复,直到找到产生差异的变化。

  2. 运行应用程序,中断局部变量引用UserControl的位置,然后在Locals或Watch窗口中浏览UserControl上方和下方的可视化树。查看每个Visual的内部属性VisualOffset,VisualTransform和VisualContentBounds。这些属性通常会让您了解错误设置的属性,并从中可以找出原因。