C# 在Windows 8上,当布局或分辨率更改时,如何运行函数?
我使用矩形创建了一个条形图,矩形的大小与图形的边框成比例。但是,当切换到其他布局(如“捕捉视图”)时,只有边框的大小更改,而不是矩形的长度。如何检测布局或分辨率的变化并调用函数来更新矩形的长度?这是一篇关于MSDN的文章,主题如下: 微软似乎也倾向于推荐一种方法,即使用视觉状态来触发不同的视觉布局更改 如果你选择File->New Project并选择Grid应用程序,他们已经有了代码(签出App.cs)来连接屏幕大小的变化并触发不同的视觉状态C# 在Windows 8上,当布局或分辨率更改时,如何运行函数?,c#,windows-8,winrt-xaml,C#,Windows 8,Winrt Xaml,我使用矩形创建了一个条形图,矩形的大小与图形的边框成比例。但是,当切换到其他布局(如“捕捉视图”)时,只有边框的大小更改,而不是矩形的长度。如何检测布局或分辨率的变化并调用函数来更新矩形的长度?这是一篇关于MSDN的文章,主题如下: 微软似乎也倾向于推荐一种方法,即使用视觉状态来触发不同的视觉布局更改 如果你选择File->New Project并选择Grid应用程序,他们已经有了代码(签出App.cs)来连接屏幕大小的变化并触发不同的视觉状态 如果您感兴趣,我也写了一篇关于此项目类型剖析的博客
如果您感兴趣,我也写了一篇关于此项目类型剖析的博客文章:您可能应该只使用基本的VisualStateManager来更改快照/全屏肖像/全屏风景时的布局 如果您需要更高级的行为,请使用以下方法:
-将SizeChanged处理程序添加到页面
-在应用程序中将根网格/面板元素命名为x:name=“root”,并使其水平和垂直拉伸。
-在SizeChanged事件处理程序中,您可以通过访问Root.ActualWidth和Root.ActualHeight找到实际屏幕大小。在这里,您可以显示/隐藏/更改/调整您想要的任何内容。谢谢。SizeChanged事件处理程序就是我需要的。谢谢。我最终使用事件处理程序,因为可视化状态需要一个恒定的大小。另外,感谢您的指导和网格模板的分解