WPF中UserControl中DesignWidth和Width的区别

36

当我在WPF中创建一个新的UserControl时,工作室会创建一些XAML:

<UserControl x:Class="MOG.Objects.Date.Calender"
             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="300" d:DesignWidth="300">

    <Grid>

    </Grid>
</UserControl>

UserControl中,我可以添加宽度属性。 DesignWidthWidth之间有什么区别?

2个回答

105

d:DesignHeightd.DesignWidth 是用于 Visual Studio 或 Expression Blend 中的设计器(所见即所得)。HeightWidth 则是在运行时使用。


9
这个答案简单明了。接受的答案中有太多不必要的信息。 - Khalil Khalaf

30

为了改善设计体验,Microsoft提供了特殊的设计时属性,可添加到任何WPF元素中并作为设计工具的提示。

所有使用前缀 d: 的内容都用于设计模式,其中包括诸如以下属性:

d:DesignWidth

d:DesignHeight

d:LayoutOverrides

d:DesignHeightd:DesignWidth="300" 属性的使用是因为 (来源):

  • 用户控件未嵌入父视图。未设置 WidthHeight

  • 根元素的构造函数未被调用。根元素被设计器替换。ViewModel 未被创建。

  • 控件的行为不同。没有鼠标和键盘事件。加载了设计时扩展程序。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接