Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.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
C# 在Windows 8上,当布局或分辨率更改时,如何运行函数?_C#_Windows 8_Winrt Xaml - Fatal编程技术网

C# 在Windows 8上,当布局或分辨率更改时,如何运行函数?

C# 在Windows 8上,当布局或分辨率更改时,如何运行函数?,c#,windows-8,winrt-xaml,C#,Windows 8,Winrt Xaml,我使用矩形创建了一个条形图,矩形的大小与图形的边框成比例。但是,当切换到其他布局(如“捕捉视图”)时,只有边框的大小更改,而不是矩形的长度。如何检测布局或分辨率的变化并调用函数来更新矩形的长度?这是一篇关于MSDN的文章,主题如下: 微软似乎也倾向于推荐一种方法,即使用视觉状态来触发不同的视觉布局更改 如果你选择File->New Project并选择Grid应用程序,他们已经有了代码(签出App.cs)来连接屏幕大小的变化并触发不同的视觉状态 如果您感兴趣,我也写了一篇关于此项目类型剖析的博客

我使用矩形创建了一个条形图,矩形的大小与图形的边框成比例。但是,当切换到其他布局(如“捕捉视图”)时,只有边框的大小更改,而不是矩形的长度。如何检测布局或分辨率的变化并调用函数来更新矩形的长度?

这是一篇关于MSDN的文章,主题如下:

微软似乎也倾向于推荐一种方法,即使用视觉状态来触发不同的视觉布局更改

如果你选择File->New Project并选择Grid应用程序,他们已经有了代码(签出App.cs)来连接屏幕大小的变化并触发不同的视觉状态


如果您感兴趣,我也写了一篇关于此项目类型剖析的博客文章:

您可能应该只使用基本的VisualStateManager来更改快照/全屏肖像/全屏风景时的布局

如果您需要更高级的行为,请使用以下方法:
-将SizeChanged处理程序添加到页面
-在应用程序中将根网格/面板元素命名为x:name=“root”,并使其水平和垂直拉伸。

-在SizeChanged事件处理程序中,您可以通过访问Root.ActualWidth和Root.ActualHeight找到实际屏幕大小。在这里,您可以显示/隐藏/更改/调整您想要的任何内容。

谢谢。SizeChanged事件处理程序就是我需要的。谢谢。我最终使用事件处理程序,因为可视化状态需要一个恒定的大小。另外,感谢您的指导和网格模板的分解