WPF中UserControl中DesignWidth和Width之间的差异

时间:2014-02-19 04:32:13

标签: c# wpf xaml user-controls

当我在WPF中创建一个新的UserControl时,studio会创建一些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>

UserContol我还可以添加Width属性。 DesignWidthWidth之间有什么区别?

2 个答案:

答案 0 :(得分:60)

d:DesignHeightd.DesignWidth适用于Designer(WYSIWYG),Visual Studio或Expression Blend。 Height Width 实际上是用于运行时。

答案 1 :(得分:19)

使用了属性d:DesignHeightd:DesignWidth="300",因为(Source):

  • UserControls未嵌入父视图中。 WidthHeight未设置。

  • 不调用root-element的构造函数。根元素由设计者替换。未创建ViewModel。

  • 控件表现不同。没有鼠标和键盘事件。 加载设计时间延长

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

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

d:DesignWidth

d:DesignHeight

d:LayoutOverrides