我的应用程序的某些元素具有自定义调整大小事件,这些事件都有效。然而,他们却被一件事搞砸了:
当将鼠标悬停在窗口边框上时,光标将成为调整大小手柄,然后单击(但不要拖动),元素的大小调整不正确,并且我的处理程序不会被触发。
我已经寻找过这样的事件,但找不到任何匹配的内容。我想简单地为此事件创建一个处理程序,以避免调整元素大小时出现问题。
我正在使用 C#/WPF 和 .NET 4
窗口的 xaml:
<Window x:Class="XHealth.MainWindow"
Name="mainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:DataGridTemplateSample"
xmlns:XH="clr-namespace:XHealth"
xmlns:toolkit="http://schemas.microsoft.com/wpf/2008/toolkit"
SizeChanged="update_size"
Title="XHealth" Loaded="Window_Loaded" WindowState="Normal" WindowStartupLocation="CenterScreen" mc:Ignorable="d" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" SizeToContent="WidthAndHeight" WindowStyle="ThreeDBorderWindow" MinWidth="650" MinHeight="648" Width="Auto" VerticalAlignment="Top" DataContext="{Binding}" PreviewKeyDown="Window_KeyDown">
事件处理程序:
public void update_size(object sender, RoutedEventArgs e )
{
if (resultsTab.IsSelected){
Grid.SetRowSpan(dataGrid1, 2);
Grid.SetRowSpan(dataGrid2, 2);
}
}
该处理程序按预期执行,但在未拖动调整大小手柄时不会触发,这使我相信单击调整大小手柄是不同的事件。
另外,这只发生一次 - 一旦我的调整大小处理程序生效,单击调整大小手柄就不起作用。
将我的评论转换为答案:
这可以通过不在网格中放置任何 * 来解决。
另外,如果窗口设置为SizeToContent
,你应该只SizeToContent=Width
以防止窗口无休止地缩放。
删除所有事件处理程序的东西,这就是黑客。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)