找到画布的大小

Bry*_*hen 3 c# xaml microsoft-metro windows-8

如何找出Canvas在xaml文件中创建的大小?

例如,我创建一个Canvas by

<Page
    x:Class="MyApp.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:MyApp"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">

        <Canvas x:Name="canvas" Background="White">
        </Canvas>
</Page>
Run Code Online (Sandbox Code Playgroud)

全屏是白色或我为该画布指定的任何颜色

我在课堂上试过但没有运气

double h = canvas.Height; // NaN
h = canvas.ActualHeight;  // 0
Run Code Online (Sandbox Code Playgroud)

那么如何找出该画布的实际尺寸?或者大小是0而不是如何使画布全屏尺寸?

我是新的C#和都市开发人员,因此比起iOS的所有功能都很困惑.

Joh*_*wen 6

在代码中你在哪里检查画布的大小?我假设您在页面构造函数中或在UI布局运行之前运行的其他位置执行此操作.在这种情况下,所有自动调整大小的元素(NaN高度或宽度)仍然具有其默认大小.如果在布局完成后检查大小,就像页面中的Loaded事件处理程序一样,那么您应该看到真实的渲染大小.