WPF中的WPF元素通常可以层叠显示,常见在仅有一行一列的Grid中放置两个元素,后放置的元素会显示在前一个元素的顶面。然而,当第一个元素不是wpf元素而是System.Windows.Forms中的控件的时候(注:用WindowsFormsHost包装起来的System.Windows.Forms控件),那么第二个元素就显示不出来。
<Grid>
<!DockPanel 元素时Grid中的第一个元素,里面包装了一个WindowsFormsHost>
<DockPanel Grid.Column="0" Grid.Row="0" VerticalAlignment="Center" HorizontalAlignment="Center">
<WindowsFormsHost Name="myHost" MinWidth="720" MinHeight="480"
SizeChanged="myHost_SizeChanged" HorizontalAlignment="Center"
VerticalAlignment="Center">
<forms:PictureBox/>
</WindowsFormsHost>
</DockPanel>
<!TextBlock元素时Grid中的第二个元素>
<TextBlock Grid.Column="0" Grid.Row="0" Text="上层的文字" FontSize="25" Foreground="Blue"
HorizontalAlignment="Center" VerticalAlignment="Center"
Visibility="{Binding DoesNotExistEquipment,ElementName=this,Mode=OneWay,
Converter={StaticResource BooleanToVisibilityConverter}}"/>
<!TextBlock元素本应该显示在第一个元素的顶面,但是即使Visibility=Visible时也是显示不出来的,不知道什么原因>
</Grid>