如何以编程方式访问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">
答案 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