设置Wpf窗口样式时,窗口窗体不会显示

设置Wpf窗口样式时,窗口窗体不会显示,wpf,styles,winforms-interop,Wpf,Styles,Winforms Interop,我有一个WPF窗口,里面有一个WinForms按钮。设置窗口样式时,按钮不会渲染,但未设置窗口样式时,按钮会按其应有的方式显示 窗口Xaml: <Window x:Class="Telbit.TeStudio.View.Forms.FloatingTestComponentsBrowser" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.mi

我有一个WPF窗口,里面有一个WinForms按钮。设置窗口样式时,按钮不会渲染,但未设置窗口样式时,按钮会按其应有的方式显示

窗口Xaml:

<Window x:Class="Telbit.TeStudio.View.Forms.FloatingTestComponentsBrowser"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:wf="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms"
    Title="Test Components Browser" Style="{DynamicResource TSHUD}"
    SizeToContent="WidthAndHeight" Closing="Window_Closing" >

    <Grid Name="windowContent" Height="300" Width="300">
            <WindowsFormsHost HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
                    <wf:Button Text="Try" Name="btnTry" MaximumSize="100,25" BackColor="LightGray"/>
            </WindowsFormsHost>
    </Grid>
</Window>

以下是窗口的样式:

<Style x:Key="TSHUD" TargetType="{x:Type Window}">
    <Setter Property="ShowInTaskbar" Value="False"/>
    <Setter Property="BorderThickness" Value="0px"/>
    <Setter Property="AllowsTransparency" Value="True"/>
    <Setter Property="WindowStyle" Value="None"/>
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type Window}">
                <Grid x:Name="LayoutRoot">
                    <Rectangle Fill="#ED111F29" Stroke="Black" Margin="29,29,29,29" RadiusX="3" RadiusY="3" Effect="{DynamicResource TSWindowShadow}"/>

                    <Rectangle Name="TSHUDHeader" Stroke="Black" Margin="29,29,29,29" VerticalAlignment="Top" Height="25" RadiusX="3" RadiusY="3">
                        <Rectangle.Fill>
                            <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                                <GradientStop Color="#ED1F3A45"/>
                                <GradientStop Color="#EC111F29" Offset="1"/>
                            </LinearGradientBrush>
                        </Rectangle.Fill>
                    </Rectangle>

                    <Rectangle Name="TSHUDHeaderSplitter" Fill="#ED374551" Margin="30,54,30,29" VerticalAlignment="Top" Height="1"/>

                    <Label Name="TSHudTitle" Background="Transparent"
                               Margin="41,34,41,29" Padding="0"
                               HorizontalAlignment="Stretch" VerticalAlignment="Top" Height="20" >
                        <TextBlock Text="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Window}, AncestorLevel=1}, Path=Title}"
                                   TextWrapping="Wrap" Foreground="#FF8395B1" FontWeight="Bold"/>
                    </Label>

                    <ContentPresenter/>
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

我有其他具有相同样式的窗口,但只有WPF控件(一些具有默认样式,一些具有自定义样式),没有问题

我一直在努力,但运气不好


提前感谢您的帮助…

这是已知的
WindowsFormsHost的限制:
AllowTransparency=“True”
设置时,win forms控件不会显示:(你可以在这里看一下:但是那里的解决方案建议非常难看。哦,该死!无论如何,如果你的回答是正确的,我会把你的回答标记为正确的。我想我现在无法做到这一点comment@repka当前位置你也帮我!请将其作为答案发布,以便其他人可以看到