Wpf 在按钮悬停时,启用ResizeMode
我试图在用户悬停“mybutton”时显示窗口框架。这应该行得通,但出于某种原因,它行不通。我错过了什么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=
<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
属性的复选框对其进行了测试,即使使用上面定义的样式,它也可以正常工作。谢谢。这个解决方案也有效。我只是没想到它会像那样闪烁。