WPF xaml中的 xmlns:d=“http://schemas.microsoft.com/expression/blend/2008“ 的使用

在编辑界面代码时,我发现一行代码:

XML 复制代码
d:DataContext="{d:DesignInstance Type={x:Type localVM:EmbossingActionConfigPageViewModel},
                                 IsDesignTimeCreatable=False}"

关于其中的DataContext的指定逻辑让我很疑惑。

因为我在C#代码中也指定了DataContext,给我的感觉就是这里的d:DataContext=...并没有起作用,以下是学习到的知识点:

各部分含义:

  1. d: 命名空间

    • 这是设计时命名空间,通常定义为:

    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"

    • 只在设计时生效,运行时会被忽略
  2. d:DataContext

    • 仅为设计器设置数据上下文

    • 不会影响运行时的实际DataContext

  3. d:DesignInstance

    • 一个特殊的标记扩展,创建设计时实例
  4. Type={x:Type localVM:EmbossingActionConfigPageViewModel}

    • 指定要使用的ViewModel类型

    • localVM是ViewModel的命名空间前缀

  5. IsDesignTimeCreatable=False

    • 重要参数!表示不真正创建ViewModel实例

    • 只使用类型元数据提供智能感知

实际作用

1. 提供智能感知

复制代码
<!-- 在设计器中,你可以这样绑定: -->
<TextBox Text="{Binding ViewModelProperty}" />
<!-- ↑ 输入时会有ViewModel属性的智能感知提示 -->

2. 设计时预览

复制代码
<!-- 如果 IsDesignTimeCreatable=True -->
d:DataContext="{d:DesignInstance Type=localVM:MyViewModel, 
               IsDesignTimeCreatable=True}"

会实际创建ViewModel实例,可以:

  • 预览真实数据

  • 看到控件样式

  • 测试布局

3. 与运行时DataContext的关系

复制代码
<!-- 典型用法 -->
<UserControl 
    x:Class="MyView"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    d:DataContext="{d:DesignInstance Type=localVM:MyViewModel, 
                     IsDesignTimeCreatable=False}"
    DataContext="{Binding MyViewModel, Source={StaticResource Locator}}">
    <!--
    设计时:使用d:DataContext获取智能感知
    运行时:使用实际的DataContext绑定
    -->
</UserControl>
相关推荐
Wang's Blog5 小时前
AI Agent白手起家60: 多智能体架构解析与 LangGraph 入门
人工智能·架构·wpf
love530love7 小时前
Photoshop 2026 AI 功能排障复盘:Camera Raw 卡死 / Neural Filters 灰 / 皮肤平滑下载失败 全定位
人工智能·ui·photoshop
.Peter8 小时前
.NET/WPF 程序在部分 Windows 电脑无法保存用户环境变量:使用 DPAPI 实现安全兼容
windows·信息安全·c#·.net·wpf·环境变量·dpapi
农村小镇哥9 小时前
怎么把HTM格式转化成WORD
ui·c#·word
天天进步20151 天前
UI-TARS 源码解析 #22:二次开发实战:用 UI-TARS 做一个简单的 Windows 自动操作 Agent
windows·ui
dalong101 天前
WPF:3D型材模型
3d·wpf
一念春风1 天前
文件透明加密(C、C#)
c语言·c#·wpf
腾科IT教育2 天前
HarmonyOS开发|ArkTS UI颜色API通用规则
ui·华为·harmonyos·harmonyos开发·鸿蒙应用开发工程师
小小工匠2 天前
把生成模型接进 Agent:Higgsfield MCP 的架构拆解与工程实践
ui·higgsfield mcp·impeccable
czhaii2 天前
word插入表格排版创建或编辑应用技巧
ui·c#·xhtml