查找画布的尺寸
问题描述:
如何找出在xaml文件中创建的Canvas
的尺寸?查找画布的尺寸
比如我通过
<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>
创建一个帆布和全屏幕为白色或我为画布
比在我的班级我试过,但没有运气
double h = canvas.Height; // NaN
h = canvas.ActualHeight; // 0
指定的任何颜色
那么如何找出该画布的实际尺寸?或者大小是0,但不是如何使画布全屏尺寸?
我是新的C#和城域开发人员,所以一切工作如何与iOS相比如此混乱。
答
你在代码中检查Canvas的大小?我假设你正在页面构造器或UI布局运行之前运行的其他地方执行此操作。在这种情况下,所有自动调整大小的元素(NaN高度或宽度)仍然具有其默认大小。如果您在布局完成后检查大小,如在页面中的Loaded事件处理程序中,则应该看到真实的渲染大小。
答
如果您Canvas
恰好只包含一个Image
,你可以使用:
var Width = ((Image) (MyCanvas.Children[0])).Width;
var Height = ((Image) (MyCanvas.Children[0])).Height;
当然,你也可以切换出两个Image
投下另一种元素,如果你的Canvas
包含一些其他的项目之一。
或者只是给包装的Image
(或其他元素)一个名称,并将其引用为MyImage.Width
。
我检查'OnNavigatedTo(NavigationEventArgs e)'。这会造成问题吗? – 2012-03-09 10:55:03
试过'Loaded'事件处理程序和'ActualHeight'给我正确的数字 – 2012-03-10 02:12:40