http://schemas.microsoft.com/winfx/2006/xaml/presentation 定义

2023-11-23

当您在 Visual Studio 中创建新的 WpfApplication 项目时,您将获得以下 XAML。复制并粘贴 URLhttp://schemas.microsoft.com/winfx/2006/xaml/presentation在浏览器中,我希望看到 XSD 文件定义,但出现错误。为什么?

Thanks.

<Window x:Class="WpfApplication1.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525">
  <Grid>

  </Grid>
</Window>

问题是大多数 wpf 开发人员都知道它是如何工作的但是当你要解释时,它变得非常困难..下面是我的尝试...由于简化它变得很大,但我希望如果你读到最后,你会理解定义是如何工作的..

设想:

我是一名 wpf 初学者开发人员,正在 goggle 上寻找 wpf spinner。我有一个链接字体.awesome.wpf..所以我开始尝试。下面的代码是在文档中编写的,用于添加微调器..

<Window x:Class="DemoFontAwesome.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:fa="http://schemas.fontawesome.io/icons/"
        Title="MainWindow" Height="350" Width="525">    
    <Grid  Margin="20">
        <fa:ImageAwesome Icon="AlignCenter" Spin="False" Height="48" Width="48" />
    </Grid>
</Window>

哇太棒了......它工作正常! ...

突然!!我发现我在那里添加了一行

 xmlns:fa="http://schemas.fontawesome.io/icons/"

不是类似的东西

 xmlns:fa="clr-namespace:FontAwesome.WPF;assembly=FontAwesome.WPF"

那么 Visual Studio 如何知道哪个dll包含 ImageAwesome 类!!! ...我只添加了FontAwesome.WPF.dll通过 nuget ..我没有做任何其他事情..没有额外的 xsd 或 xml 文件..架构链接(http://schemas.fontawesome.io/icons/)不可用...那怎么办? ...奇怪的!!

然而 1 小时后我得到了下面的代码..

<Window x:Class="DemoFontAwesome.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:fa="http://schemas.fontawesome.io/icons/"
        Title="MainWindow" Height="350" Width="525">
    <Window.Resources>
        <ResourceDictionary>
            <fa:CssClassNameConverter Mode="FromIconToString" x:Key="sdfsdf"></fa:CssClassNameConverter>
        </ResourceDictionary>
    </Window.Resources>
    <Grid  Margin="20">
        <fa:ImageAwesome Icon="AlignCenter" Spin="False" Height="48" Width="48" />
    </Grid>
</Window>

值得注意的部分是fa:ImageAwesome and fa:CssClassNameConverter班级...他们来自different namespace(使用我已经检查过的代码)..并且我没有指定额外的一行来指定任何FontAwesome.WPF or FontAwesome.WPF.Converters命名空间..那么神奇是怎么回事!! ..

解决方案:

所以我下载了源代码字体.awesome.wpf..并开始搜索文本http://schemas.fontawesome.io/icons/在那里......最后我找到了以下几行assembly.csfont.awesome.wpf 项目的..

[assembly: AssemblyVersion("4.5.0.*")]
[assembly: AssemblyFileVersion("4.5.0.7")]

[assembly: XmlnsPrefix("http://schemas.fontawesome.io/icons/", "fa")]
[assembly: XmlnsDefinition("http://schemas.fontawesome.io/icons/", "FontAwesome.WPF")]
[assembly: XmlnsDefinition("http://schemas.fontawesome.io/icons/", "FontAwesome.WPF.Converters")]

整个事情(魔术!!)向我透露了..

In assembly.cs文件定义的组件http://schemas.fontawesome.io/icons/命名空间..所以当我添加 fontawesome.wpf dll 时... Visual Studio 使用反射获得了它的命名空间定义.. 那么 vs 如何知道fa tag refers to...所以这就是如何它解决了大部头书... :)

一些理论

XML 命名空间名称与任何特定的 .NET 命名空间不匹配。有一个 XAML 的创建者选择这种设计有几个原因。按照惯例,XML 命名空间通常是 此处的统一资源标识符 (URI)。这些 URI 看起来像是指向 网络,但他们没有。使用 URI 格式是因为它使得不同的组织不太可能 无意中创建了具有相同名称空间的不同基于 XML 的语言。因为域 schemas.microsoft.com 归 Microsoft 所有,只有 Microsoft 才会在 XML 命名空间名称中使用它。

XAML 中使用的 XML 命名空间之间没有一对一映射的另一个原因 和 .NET 命名空间是因为它会使您的 XAML 文档显着复杂化。问题 值得注意的是,WPF 包含十多个命名空间(所有命名空间均以 System.Windows 开头)。如果 每个 .NET 命名空间都有不同的 XML 命名空间,您需要为每个命名空间指定正确的命名空间 以及您使用的每个控件,它们很快就会变得混乱。相反,WPF 的创建者选择将所有 将这些 .NET 命名空间合并到单个 XML 命名空间中。这是可行的,因为在不同的 .NET 中 命名空间是 WPF 的一部分,不存在任何具有相同名称的类。 命名空间信息允许 XAML 解析器找到正确的类。例如,当它看起来 在 Window 和 Grid 元素中,它发现它们被放置在默认的 WPF 命名空间中。那么它 搜索相应的 .NET 命名空间,直到找到 System.Windows.Window 和 System. Windows.Controls.Grid

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

http://schemas.microsoft.com/winfx/2006/xaml/presentation 定义 的相关文章

  • strlen() 编译时优化

    前几天我发现你可以找到编译时strlen使用这样的东西 template
  • Boost ASIO 串行写入十六进制值

    我正在使用 ubuntu 通过串行端口与设备进行通信 所有消息都必须是十六进制值 我已经在 Windows 环境中使用白蚁测试了通信设置 并得到了我期望的响应 但在使用 Boost asio 时我无法得到任何响应 以下是我设置串口的方法 b
  • 链接 .Net 程序集

    这都是假设 所以请耐心等待 假设我正在用 C 编写一个名为 Foo 的工具 输出是 foo exe 我发现了一些我喜欢使用的非常棒的库 称为 Bar 我可以在我的项目中将其引用为 bar dll 当我构建项目时 我的输出目录中有 foo e
  • 如何修复错误:“检测到无法访问的代码”

    我有以下代码 private string GetAnswer private int CountLeapYears DateTime startDate return count String answer GetAnswer Respo
  • 防止控制台应用程序中的内存工作集最小化?

    我想防止控制台应用程序中的内存工作集最小化 在Windows应用程序中 我可以这样做覆盖 SC MINIMIZE 消息 http support microsoft com kb 293215 en us fr 1 但是 如何在控制台应用程
  • Android NDK 代码中的 SIGILL

    我在市场上有一个 NDK 应用程序 并获得了有关以下内容的本机崩溃报告 SIGILL信号 我使用 Google Breakpad 生成本机崩溃报告 以下是详细信息 我的应用程序是为armeabi v7a with霓虹灯支持 它在 NVIDI
  • 用于在标头更改时重新编译的简单 C 项目的示例 makefile

    有谁有完整的 makefile 可以执行以下操作 如果 HEADER 文件发生更改 则重建项目 cpp 文件在 makefile 中列出 头文件未在 makefile 中列出 头文件允许与 cpp 文件具有不同的名称 部分cpp文件没有头文
  • if constexpr 中的 not-constexpr 变量 – clang 与 GCC

    struct A constexpr operator bool const return true int main auto f auto v if constexpr v A a f a clang 6 接受该代码 GCC 8 拒绝它
  • 测量进程消耗的 CPU 时钟

    我用 C 语言编写了一个程序 它是作为研究结果创建的程序 我想计算程序消耗的确切 CPU 周期 精确的循环次数 知道我怎样才能找到它吗 The valgrind tool cachegrind valgrind tool cachegrin
  • LinkLabel 无下划线 - Compact Framework

    我正在使用 Microsoft Compact Framework 开发 Windows CE 应用程序 我必须使用 LinkLabel 它必须是白色且没有下划线 因此 在设计器中 我将字体颜色修改为白色 并在字体对话框中取消选中 下划线
  • 现代 UI WPF 导航

    我正在使用现代 ui wpf 并尝试从 CheckLogin xaml 页面导航到 MainWindow xaml 页面 它们位于解决方案根目录中 我在 CheckLogin xaml 中写了这样的内容 BBCodeBlock bbBloc
  • 我们可以通过指针来改变const定义的对象的值吗?

    include
  • MySQL 连接器 C++ 64 位在 Visual Studio 2012 中从源代码构建

    我正在尝试建立mySQL 连接器 C 从源头在视觉工作室2012为了64 bit建筑学 我知道这取决于一些boost头文件和C 连接器 跑步CMake生成一个项目文件 但该项目文件无法编译 因为有一大堆非常令人困惑的错误 这些错误可能与包含
  • Xamarin Forms Binding - 访问父属性

    我无法访问页面的 ViewModel 属性以便将其绑定到 IsVisible 属性 如果我不设置 BindingContext 我只能绑定它 有没有办法可以在设置 BindingContext 的同时访问页面的 viewmodel root
  • 构建 C# MVC 5 站点时项目之间的处理器架构不匹配

    我收到的错误如下 2017 年 4 月 20 日构建 13 23 38 C Windows Microsoft NET Framework v4 0 30319 Microsoft Common targets 1605 5 警告 MSB3
  • 如何编写一个接受 int 或 float 的 C 函数?

    我想用 C 语言创建一个扩展 Python 的函数 该函数可以接受 float 或 int 类型的输入 所以基本上 我想要f 5 and f 5 5 成为可接受的输入 我认为我不能使用if PyArg ParseTuple args i v
  • 如何从 Windows Phone 7 模拟器获取数据

    我有一个 WP7 的单元测试框架 它在手机上运行 结果相当难以阅读 因此我将它们写入 XDocument 我的问题是 如何才能将这个 XML 文件从手机上移到我的桌面上 以便我可以实际分析结果 到目前为止 我所做的是将 Debugger B
  • 如何获取带有某个属性注释的所有属性?

    我刚刚从 Roslyn 开始 我想找到所有用属性名称 OneToOne 注释的属性 我启动了 SyntaxVisualizer 并能够获取对该节点的引用 但我想知道是否有更简单的方法来实现此目的 这就是我所拥有的 var prop docu
  • 从后面的代码添加外部 css 文件

    我有一个 CSS 文件 例如 SomeStyle css 我是否可以将此样式表文档从其代码隐藏应用到 aspx 页面 您可以将文字控件添加到标头控件中 Page Header Controls Add new System Web UI L
  • 声明一个负长度的数组

    当创建负长度数组时 C 中会发生什么 例如 int n 35 int testArray n for int i 0 i lt 10 i testArray i i 1 这段代码将编译 并且启用 Wall 时不会出现警告 并且似乎您可以分配

随机推荐

  • QTabWidget 大小取决于当前选项卡

    I ve a QTabWidget 其中包含不同高度的小部件 它们的宽度是固定的 但是 默认实现QTabWidget选择最大的部件的高度作为自己的高度 我想知道是否有一种 可能快速 的方法来改变大小QTabWidget取决于其当前选项卡 以
  • 删除 Activity 作为默认启动器

    我将我的活动设置为默认启动器来拦截主页按钮点击 如下所示
  • AngularJS 中的滚动事件

    我有一个带有滚动条的 div 现在我想获取一个事件 每次用户滚动时都会触发该事件 这在 AngularJS 中可能吗 还是我必须使用 jQuery Edit 到目前为止我想出了以下内容 JS directive scroll functio
  • 没有名为“fbprophet”的模块?

    我尝试按照以下说明在 Ubuntu 上的 Anaconda 中安装 Facebook Prophet https facebook github io prophet docs installation html installation
  • pip 和 conda 之间的实际区别

    我看到了有关 pip 和 conda 之间差异的其他问题 但我还不清楚 请在标记为重复之前考虑这一点 如果我跑pip install seaborn and conda install seaborn我会得到同样的结果吗 我可以跑pip i
  • 更好的错误处理[重复]

    这个问题在这里已经有答案了 Here https github com astaxie build web application with golang blob master en 11 1 md描述了如何根据 http 包使用自定义路
  • IPython 导入失败和 python sys.path 一般情况

    我正在关注这个post让一个 ipython 统治所有 virtualenvs 据我了解 这篇文章的主要思想是 当在 virtualenv 中时 ipython 找不到它的模块 a virtualenv me pc ipython Trac
  • 从服务器 HTTPS 接收并验证证书 - android

    我正在通过 https 从 Android 客户端调用 Web 服务 我必须验证从服务器端收到的证书 我怎么做 目前 这是我用来调用网络服务的代码 private static String SendPost String url Arra
  • 如何在 Jekyll 中链接到没有 html 扩展名的 page.url 页面?

    我正在 Jekyll 中建立一个网站 为了删除帖子中的 html 扩展名 我将以下内容添加到 config yml permalink kb title 为了从页面中删除 html 扩展名 我为每个页面创建了文件夹 并在每个页面文件夹中放置
  • 如何有条件地为表格单元格中的背景着色?

    我正在渲染一个表格p 数据表 PrimeFaces 我想要做的是根据单元格内容的值对单元格的背景进行着色 这与为行或列着色不同 它是单个单元格 首先是CSS问题 如果我这样做
  • 从 HTML 页面源下载图像文件

    我正在编写一个抓取工具 用于从 HTML 页面下载所有图像文件并将它们保存到特定文件夹中 所有图像都是 HTML 页面的一部分 下面是一些代码 用于从提供的 URL 下载所有图像 并将它们保存在指定的输出文件夹中 您可以根据自己的需要对其进
  • Flutter widget 测试选择另一个项目时不会触发 DropdownButton.onChanged

    我正在编写一个 Flutter Web 应用程序 并向我的代码库添加一些小部件测试 我很难让 flutter test 按预期工作 我当前面临的问题是尝试在 DropdownButton 中选择一个值 以下是重现问题的完整小部件测试代码 v
  • 添加和删​​除 JLabel 上的图标

    您好 我有一个标签 我已为其设置了图标 我想在单击按钮后删除此图标 它的方法是什么 Create icon Icon icon new ImageIcon getClass getResource foo bar baz png Creat
  • 掩蔽者在 SHAP 包中真正做了什么并让他们适合训练或测试?

    我一直在努力与shap包裹 我想从我的逻辑回归模型中确定形状值 与此相反TreeExplainer the LinearExplainer需要一个所谓的掩蔽器 这个掩码器到底有什么作用 独立掩码器和分区掩码器有什么区别 另外 我对测试集中的
  • Windows中当前目录和工作目录的区别

    Windows 中的当前目录和工作目录有什么区别 如何更改 Notepad 或 Mozilla Firefox 等应用程序的工作目录 当前目录和工作目录只是同一事物的两个不同名称 每个进程维护一个当前目录 当前目录在启动时指定为用于创建进程
  • 正则表达式在尊重 CDATA 的同时转义 HTML 和符号

    我编写了一个内容管理系统 它使用服务器端正则表达式在页面响应发送到客户端浏览器之前对页面响应中的 符号进行转义 正则表达式会注意已转义的或属于 HTML 实体一部分的 符号 例如 以下内容 a b c amp d copy 2009 更改为
  • jQuery AJAX 调用弄乱了字符编码

    我有一个输出 JSON 的 servlet Servlet 的输出编码是 ISO 8859 1 我们的网络应用程序中的页面也设置为 ISO 8859 1 我会使用 UTF 8 但这超出了我的控制范围 我们必须使用 ISO 8859 1 当我
  • 了解 CPU 如何决定将哪些内容加载到高速缓存中

    假设一台计算机有 64k 的 L1 缓存和 512k 的 L2 缓存 程序员在主内存中创建 填充了一个包含 10mb 数据的数组 例如 3D 模型的顶点 索引数据 该数组可能包含一系列结构 例如 struct x vec3 pos vec3
  • 通过 Firebase 电子邮件/密码身份验证进行 CSRF 保护

    我正在努力将我的 Node js 应用程序部署到生产环境中 我们遇到了一些 CSRF 问题 但在深入研究问题并了解有关 CSRF 攻击的更多信息后 我想知道我们是否需要执行这些检查 我们的 API 已从 CSRF 检查中列入白名单 因此依赖
  • http://schemas.microsoft.com/winfx/2006/xaml/presentation 定义

    当您在 Visual Studio 中创建新的 WpfApplication 项目时 您将获得以下 XAML 复制并粘贴 URLhttp schemas microsoft com winfx 2006 xaml presentation在