我有一个Silverlight 3 DataForm,它为DataTemplate添加了一些奇数填充。使用Silverlight Spy检查XAML输出,看起来有一个ContentPresenter,边距为12,12,6,12,然后包含DataTemplate的内容。这意味着表格中的填充总是不适合我的情况。
有没有人知道如何在不创建样式资源和模板化整个控件的情况下调整此边距?它似乎不是表单中任何明显的填充属性。
以下是Silverlight间谍的看法:http://i169.photobucket.com/albums/u217/troyhunt/Silverlight.png?t=1249271108
答案 0 :(得分:1)
我觉得这样做很脏,但我只是在数据形式的第一个子元素上添加了负边距。非常不优雅但是没有明显的替代方案可以完成工作。
答案 1 :(得分:0)
使用一小段代码的另一种方法是使用可视树来查找要设置的ContentPresenter边距。
调整Finding Elements代码以删除不适用于Silverlight的ContentElement,然后您可以找到内容展示者并更新保证金,例如。
foreach ( var match in LayoutRoot.FindChildren<ContentPresenter>())
{
if ( match.Margin.Bottom == 12 && match.Margin.Top == 12 && match.Margin.Left == 12 && match.Margin.Right == 6)
match.Margin = new Thickness(0);
}