我得到了以下xaml
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<TextBlock x:Name="_sampleText"
Grid.Row="0"
VerticalAlignment="Stretch"
HorizontalAlignment="Stretch"
Width="200"
Height="50"
FontSize="36"
Text="Hello world"
TextAlignment="Center"
Visibility="Collapsed" />
<Border Grid.Row="1"
Width="{Binding ActualWidth, ElementName=_sampleText}"
Height="{Binding ActualHeight, ElementName=_sampleText}">
<Border.Background>
<VisualBrush Stretch="None"
Visual="{Binding ElementName=_sampleText}" />
</Border.Background>
</Border>
</Grid>
即使他绑定的控件也不可见,我希望我的视觉效果呈现。有没有办法做到这一点?
答案 0 :(得分:2)
您也可以将TextBlock放在边框中并制作Hidden
:
<Border Visibility="Hidden">
<TextBlock ... />
</Border>
答案 1 :(得分:0)
没有。如果Visibility=Collapsed
那么它将不会参与度量/排列布局并且不会被渲染(Width
和Height
将为0)。
你想要达到什么效果?看起来你想要一个预览窗格?在评论中回复我们可以找出最佳方法。
修改:有一种方法可以从代码隐藏中调用UIElement
上的度量/更新,但我认为最好的方法是使用{{1} }。
BoolToVisibilityConverter