WPF中UserControl中DesignWidth和Width的区别
Posted
技术标签:
【中文标题】WPF中UserControl中DesignWidth和Width的区别【英文标题】:Difference between DesignWidth and Width in UserControl in WPF 【发布时间】:2014-03-19 05:29:27 【问题描述】:当我在 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>
在UserContol
我也可以添加Width属性。 DesignWidth
和 Width
有什么区别?
【问题讨论】:
【参考方案1】:d:DesignHeight
和 d.DesignWidth
用于 Visual Studio 或 Expression Blend 中的设计器(所见即所得)。 Height
和 Width
实际上是用于运行时的。
【讨论】:
这个答案简单明了。接受的答案中有太多不需要的信息【参考方案2】:使用属性 d:DesignHeight
和 d:DesignWidth="300"
是因为 (Source
):
用户控件未嵌入到父视图中。 Width
和 Height
未设置。
不调用根元素的构造函数。根元素被设计者替换。未创建 ViewModel。
控件的行为不同。没有鼠标和键盘事件。 已加载设计时扩展
为改善设计体验,Microsoft 提供了可添加到任何 WPF 元素并作为设计工具提示的特殊设计时属性。
前缀d:
中使用的所有内容都用于设计模式,包括以下属性:
d:DesignWidth
d:DesignHeight
d:LayoutOverrides
【讨论】:
以上是关于WPF中UserControl中DesignWidth和Width的区别的主要内容,如果未能解决你的问题,请参考以下文章
WPF中UserControl中DesignWidth和Width的区别