如何以编程方式访问d:DesignHeight和d:DesignWidth?

时间:2013-11-26 16:06:51

标签: c# wpf xaml

如何以编程方式访问d:DesignHeight和d:DesignWidth? 用C#

<UsеrControl x:Class="MySpace.MyControl"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
         mc:Ignorable="d" 
         d:DesignHeight="200" d:DesignWidth="360">

2 个答案:

答案 0 :(得分:3)

您不能以编程方式“访问”。

Documentation for the mc:Ignorable attribute明确指出:

  

指定标记文件中遇到的XML名称空间前缀   可以被XAML处理器忽略

这意味着XAML编译器将忽略此属性指示的命名空间内的XML属性和元素,因此无法在运行时访问。

此外,在基于XAML的技术中,不需要在过程代码中混淆UI。你走错了路。

不要在WPF中的过程代码中创建或操作UI元素。这就是XAML的用途。

如果您需要更详细的答案,请提供有关您在此处尝试执行的操作的其他信息。

答案 1 :(得分:2)

我的解决方案:

    MyControl ctrl=new MyControl();
    ctrl.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));
    //ctrl.DesiredSize.Width==design width
    //ctrl.DesiredSize.Height==design height