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

moh*_*mad 28 c# wpf xaml user-controls

当我UserControl在WPF中创建一个新的时,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>
Run Code Online (Sandbox Code Playgroud)

UserContol我还可以添加Width属性.DesignWidth和之间有什么区别Width

Rhy*_*ous 70

d:DesignHeight并且d.DesignWidth是为设计师(所见即所得),在Visual Studio或Expression Blend中.Height并且Width实际上是用于运行时.

  • 这个答案简单明了.在接受的anwer中有太多不需要的信息 (5认同)

Ana*_*aev 21

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

  • UserControl未嵌入父视图中.WidthHeight没有设定.

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

  • 控件表现不同.没有鼠标和键盘事件.加载设计时间扩展

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

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

d:DesignWidth

d:DesignHeight

d:LayoutOverrides