【发布时间】:2010-07-30 20:50:13
【问题描述】:
这是我的问题:
xaml 文件 1:模板化列表控件
<ItemsControl ItemSource={Binding myUIrelatedDataList}/>
<ItemsControl.ItemTemplate>
<DataTemplate>
<my:DynamicUIPresenter Width="160" Height="80"/>
<!-- here, I want to specify my desired size to which i want to
scale down the generated UIElements -->
</DataTemplate>
</ItemsControl.ItemTemplate>
<ItemsControl/>
xaml 文件 2:项目模板
<Border BorderBrush="Black" BorderThickness="1">
<Border Child="{Binding Path=., Converter={StaticResource DynaUIConverter}}"/>
</Border>
问题是我对myUIrelatedDataList 以及DynaUIConverter 正在生成的UIElement 类型一无所知。 DynaUIConverter 通常会生成一组相互嵌套并包含文本框、按钮等的 Stackpanel。这些面板没有设置宽度或高度,我可能无法修复。
我认为我需要测量生成的 UI 的最小尺寸要求,并将 ScaleTransform 动态应用于生成的 UI,或者更好地应用于包含生成的 UI 的边框。
我在后面的代码中尝试了这个,但缩放无法正常工作,因为我无法理解从孩子到父母的宽度和高度传播如何/是否真的有效。而且我还遇到了一些递归问题,导致最后的代码效率很低。
现在的问题是:我可以在 XAML 中直接/轻松地缩小子元素吗?
【问题讨论】: