WPF中WindowsFormsHost元素与其它元素似乎不能层叠显示

本文探讨了WPF应用中使用WindowsFormsHost包装WinForms控件时出现的层叠显示问题,即后续添加的WPF元素无法正常显示在前一个WinForms控件之上。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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>

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值