我有一个控件,我正在使用此处的方法转换为图像:
Force rendering of a WPF control in memory
不幸的是我有一个复杂的布局,似乎“折叠”的控件实际上并没有在输出图像中正确隐藏。
尝试:
UpdateLayout
如果某些东西与底部对齐并且被转换器隐藏,它似乎会影响DockPanel。
<DockPanel LastChildFill=True>
<Something Dock.Panel="Top" />
<Something Dock.Panel="Bottom" Binding="{Binding XXXXX, Converter={StaticResource booleanConverter}}"/>
<Something Dock.Panel="Bottom" Binding="{Binding YYYYY, Converter={StaticResource booleanConverter}}"/>
<Something />
</DockPanel>
一切都在Xaml编辑器中显示得很好,或者在运行时在真实的可见控件中使用。
答案 0 :(得分:0)
最后,我不得不使用触发器将高度设置为零,而不是将Collapsed
应用于元素。当然,这意味着必须将任何边距转换为填充,如果需要,可以使用嵌套面板。
在这个例子中我有一个边框控件 - 所以我不得不删除Visibility属性并改为使用此触发器。
<Border>
<Border.Style>
<Style>
<Style.Triggers>
<DataTrigger Binding="{Binding XXXXX, Converter={StaticResource booleanConverter}}" Value="true">
<Setter Property="Border.Height" Value="0" />
</DataTrigger>
</Style.Triggers>
</Style>
</Border.Style>
</Border>