设计时&运行时

设计时&运行时

介绍

一个应用程序经常在运行时看起来很棒,但是当你在设计器打开时(像是VS或者Blend)体验就十分不同。原因是设计时:

  • 用户控件没有嵌入到父视图中
    宽度和高度没有被设置
  • 根元素的构造函数没有被调用
    根元素被设计器替换
    ViewModel没有被创建
  • 控件行为差别
    没有鼠标和键盘事件
    加载的设计时扩展

这是另一种麻烦,特别是如果你想要编辑数据模板或者是布局控件。

设计时特性

为了改善设计时体验。微软提供了专门的设计时特性,可以被添加到任意一个WPF元素,并且作为设计工具的提示。
设计时特性在一个特别的命名空间被定义,通过被映射为d前缀。为了告诉XAML解析器不要在运行时解析这些属性。兼容性标记被映射为mc,使用mc:Ignrable="d"指令时,d命名空间被排除。

<Window
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
/>

设计高度和设计宽度

d:DesignHeight 和 d:DesignWidth 为元素在设计时设置一个固定高度和宽度

<UserControl
    xmlns="http://schemas.microsoft.com/..."
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    d:DesignWidth="640" d:DesignWidth="480">
<UserControl>

布局覆盖

如果一个属性在运行时被设置为固定值,但是你想要在设计时覆盖它,你可以使用 d:LayoutOverrides 特性。可以列出所有在设计时应该被忽略的特性,使用逗号分隔。

<Border Height="250" Width="160" d:LayoutOverrides="Width,Height">
<Border>
posted @ 2023-08-30 11:29  Juston007  阅读(58)  评论(0)    收藏  举报