Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 在按钮悬停时,启用ResizeMode_Wpf - Fatal编程技术网

Wpf 在按钮悬停时,启用ResizeMode

Wpf 在按钮悬停时,启用ResizeMode,wpf,Wpf,我试图在用户悬停“mybutton”时显示窗口框架。这应该行得通,但出于某种原因,它行不通。我错过了什么 <Window x:Class="test2.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height=

我试图在用户悬停“mybutton”时显示窗口框架。这应该行得通,但出于某种原因,它行不通。我错过了什么

<Window x:Class="test2.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525" WindowStyle="None"  Loaded="ShellWindow_SourceInitialized"   x:Name="mywindow">
<Window.Resources>
    <Style TargetType="{x:Type Window}">            
        <Style.Triggers>            
            <DataTrigger Binding="{Binding Path=IsMouseOver, ElementName=mybutton}" Value="True">
                <Setter Property="ResizeMode" Value="CanResize" />
            </DataTrigger>
            <DataTrigger Binding="{Binding Path=IsMouseOver, ElementName=mybutton}" Value="False">
                <Setter Property="ResizeMode" Value="NoResize" />
            </DataTrigger>
        </Style.Triggers>
    </Style>

</Window.Resources>
<Grid Name="mygrid" Loaded="Grid_Loaded">
    <Button Name="mybutton" Content="Button" HorizontalAlignment="Left"  VerticalAlignment="Top" Width="75"/>
</Grid>

(如果您想知道那些“加载”的函数是什么,它们会删除chrome,同时保留阴影,allowtransparency=false )
最后,它不会是按钮,但会在整个窗口边框上做出反应(我找不到更好的方法来在删除所有chrome的同时启用大小调整)

在样式中,TargetType应该是MainWindow


必须将本地映射到命名空间的位置:

xmlns:local="clr-namespace:test2"

myButton是在样式之后定义的。XAML解析器没有那么聪明。使用以下XAML获取您的预期行为:

<Window x:Class="test2.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525" WindowStyle="None"  Loaded="ShellWindow_SourceInitialized"   x:Name="mywindow">

    <Grid Name="mygrid" Loaded="Grid_Loaded" >
        <Button Name="mybutton" Content="Button" HorizontalAlignment="Left"  VerticalAlignment="Top" Width="75"/>
    </Grid>
    <Window.Style>
        <Style TargetType="{x:Type Window}">
            <Style.Triggers>
                <DataTrigger Binding="{Binding Path=IsMouseOver, ElementName=mybutton}" Value="True">
                    <Setter Property="ResizeMode" Value="CanResize" />
                </DataTrigger>
                <DataTrigger Binding="{Binding Path=IsMouseOver, ElementName=mybutton}" Value="False">
                    <Setter Property="ResizeMode" Value="NoResize" />
                </DataTrigger>
            </Style.Triggers>
        </Style>

    </Window.Style>
</Window>


这种风格的目标确实很重要。vitaliy解决方案也很有效。我希望在负面反馈之前有人试过代码谢谢。它起作用了。我只是没想到它会像那样闪烁。我只是测试了一下。它起作用了。你的手机一定是出了什么毛病?(OP?)代码?我使用绑定到
mybutton
IsMouseOver
属性的
复选框对其进行了测试,即使使用上面定义的样式,它也可以正常工作。谢谢。这个解决方案也有效。我只是没想到它会像那样闪烁。