问题标签 [xaml-designer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
7594 浏览

c# - 无法在 WPF 设计器中将类型为“Castle.Proxies.XProxy”的对象转换为类型“X”

我最近从 Blend 中发现了非常有用的 WPF 组件设计时属性,它(除其他外)允许您仅在设计时设置 DataContext。惊人的!

结合 DesignInstance 属性,您可以设置在设计时自动创建和绑定的类型,允许您使用 Visual Studio 设计器和一些上下文来了解您的 WPF 组件在运行时的实际外观。它真的很好,我希望它没有花我这么长时间才发现。

显然,因为我在这里而不是在程序员的天堂里生活,我在使用这些设计时属性时遇到了问题。

我围绕我的 ViewModel 创建了一个设计时包装器,它有一个无参数的构造函数(因此它可以由设计者创建)。在它的构造函数中,它使用 NSubstitute 来模拟注入到它继承的 ViewModel 中的所有依赖项。

在设计器中使用此设计时类会导致错误,如下所示:

Unable to cast object of type 'Castle.Proxies.XProxy' to type 'X'.

(将 X 替换为我注入的依赖项之一)。

您可以使用以下最少的代码集来重现该问题。

在 VS2013 中创建一个针对 .NET Framework 4.5.1 的 WPF 应用程序(它也可能发生在以前的版本中,我不知道),其中包含以下文件。

查看.xaml

视图模型.cs

设计时间视图模型.cs

XDependency.cs

编译、关闭并重新打开解决方案并在设计器中打开 View.xaml。它会工作得很好。然后,关闭设计器,重新构建解决方案,再次在设计器中打开 View.xaml,会出现以下错误:

Unable to cast object of type 'Castle.Proxies.XDependencyProxy_1' to type 'DesignTimeNSubstituteIssue.Services.XDependency'.

发生此错误时,设计器将停止使用指定的 DesignTimeViewModel,并退回到根本没有 DataContext。

解决此问题的唯一方法是关闭并重新打开解决方案。

我怀疑我知道发生了什么,但我不知道为什么会发生或如何解决它。

我认为在第一次编译时,设计者正在获取对程序集的引用并将其缓存。当第二次编译发生时,程序集被重建并且大部分是相同的,但是 NSubstitute 代理重新生成了一个Castle.Proxies.XDependencyProxy_2不在第一个程序集中的新后缀(比如或其他东西),所以设计者不知道那个代理实际上实现了 XDependency 接口。这纯粹是我的猜测。

我可以通过不使用 NSubstitute 并手动模拟依赖项来创建一种解决方法,但我很想看看是否有人可以对这个主题有所了解。

0 投票
5 回答
1815 浏览

c# - XAML 设计器:'FileNotFoundException'

我正在使用 C# 开发可扩展的 WPF 应用程序。对于可扩展性,我使用 MEF(托管可扩展性框架)。但从今天开始,XAML 设计器不再适用MainWindow.xaml。它会抛出FileNotFoundException以下消息:

无法加载文件或程序集“System.ComponentModel.Composition.CodePlex,Version=4.1.2.0,Culture=neutral,PublicKeyToken=13e5ffd4e05db186”或其依赖项之一。指定的模块无法找到。

但奇怪的是,该文件确实存在。我把它复制到bin\debug文件夹中。并将其添加到参考文献中(是的,我尝试重新添加它,但这没有帮助)。另一个奇怪的事情是,它似乎是由 XAML 代码引起的,因为设计器适用于所有其他窗口。我已经尝试将一些可疑部分(ItemControls列出插件)标记为评论(我不想删除它们)。好吧,它曾经工作过,但后来我构建了解决方案,设计器崩溃了(内存不足)。从那以后我又遇到了同样的问题。

编辑:

我发现,XAML 不是问题。当我删除对System.ComponentModel.Composition.CodePlex使用此库的所有代码的引用时,问题就解决了——直到我重新启动 Visual Studio 或 Designer。

0 投票
2 回答
2638 浏览

c# - Visual Studio 2012 中缺少 XAML UI 编辑器

重新格式化计算机后,我安装了 Visual Studio 2012 。

当我在一个新的空wpf 项目中打开一个 xaml 文件时,它会在常规代码编辑器中打开它,并且不允许我选择设计视图(该选项不存在)。

右键单击 xaml 文件并选择“查看设计器”会打开一个新的代码窗口,而不是一个新的设计器窗口。(是的,同一个代码窗口实际上打开了两次)

右键单击 xaml 文件并选择“打开方式”表明我缺少 Xaml UI 设计器编辑器。(它不会显示在列表中的任何位置)

我试过运行“ devenv.exe /ResetSkipPkgs ”和“ devenv.exe /resetuserdata ”并一起修复Visual Studio的安装(通过重新安装和安装向导中的修复按钮)。

似乎没有任何帮助。任何熟悉该问题并知道如何解决的人?

0 投票
2 回答
3472 浏览

xaml - Visual Studio 2013 更新 3,设计器不会加载

我有以下情况。我昨晚安装了 Visual Studio Update 3。现在我有一个问题,当我打开我在更新 2 时完成的项目(通用应用程序)时,我的设计器不会加载并且它会引发异常:

在此处输入图像描述

有谁知道如何解决这个问题?我想这不是错误,因为可能所有内容都经过了 Microsoft 测试,这不是 RC 更新。如果我不知道解决方案,我将删除此更新。我猜如果有任何改变,它可能与xaml有关?

0 投票
1 回答
813 浏览

windows-8 - 在 Visual Studio 2013 xaml 设计器和 Blend 中出现错误(异常 0x80073CF9)

突然它停止工作了。即使是新的和空白的项目。Visual Studio 2012 仍在工作(在同一台机器上)。尝试修复并重新安装 Visual Studio 2013 - 没有成功。尝试在设计器中查看 xaml 代码时出现此错误:

更新:安装任何 WIndows Store 应用程序时出现相同的错误代码。

0 投票
3 回答
3215 浏览

c# - Visual Studio 2015(社区)设计器显示空白通用应用程序的 NullReferenceException

我对此感到有些沮丧,也许有人遇到过类似的问题或知道如何解决它。

我升级到 Windows 10。
我安装了 Visual Studio 2015 Community。
我创建了一个新的解决方案,其中只有一个用于空白通用 Windows 应用程序的项目。我正在使用 C#。

问题: 我尝试在设计器中打开 MainPage.xaml,但无法加载设计器。我NullReferenceException在设计器窗口中得到一个。我尝试在 Blend 中打开它,结果相同。正如 Visual Studio 建议的那样,我尝试在“选项”菜单中关闭“在 XAML 设计器中运行项目代码”功能,但它没有帮助。

不过,在设计器中打开其他 xaml 文件没有问题(WPF、Windows Phone 8 或 8.1 通用应用程序都可以正常工作)。该应用程序既可以在本地机器上运行,也可以在模拟器中运行,只有设计者才能发挥作用。

欢迎任何建议。

编辑

设计器窗口中的异常:

0 投票
3 回答
2906 浏览

visual-studio-2015 - XAML 设计器崩溃对象引用未设置为对象的实例

我正在使用 Visual Studio 2015 社区。

所以,我创建了一个空白的 UW 应用程序 (C++),我想开始四处看看,因为这是我第一次使用 XAML 设计器。

但是,如果对代码没有任何更改,设计器将不会加载。设计器返回未处理的异常 (System.NullReferenceException) - 对象引用未设置为对象的实例。

这真的很奇怪,因为应用程序编译并运行良好。设计器给了我一个修复(“在设计视图中排除项目代码可以提高 XAML 设计器的稳定性......”),但这并不能解决问题。

有人知道那里有什么问题吗?谢谢!

0 投票
1 回答
720 浏览

visual-studio-2015 - VS 2015 Windows 10 通用应用程序设计器无法加载

我正在尝试在 Windows 10 Professional 机器上的 Visual Studio 2015 社区中构建 Windows 10 通用应用程序(开发人员模式已打开)。但是,设计器不会加载。没有错误消息,它只是停留在说“正在加载设计器......您可以在设计器在后台加载时继续工作。”

我也尝试过修复 Visual Studio,但它没有改变任何东西。难道我做错了什么?

0 投票
1 回答
161 浏览

c# - XAML 设计器中的数据类型下拉菜单未显示自定义类

我有一个带有 HierarchicalDataTemplate 的 TreeView,我正在尝试与自定义类型的 ObservableCollection 绑定。但是我的命名空间中可用类型
的 HierarchicalDataTemplate属性的下拉列表不完整,它缺少自定义类型,但列出了同一命名空间中的所有其他自定义类型。命名空间是,并且类位于项目目录的普通 Classes 文件夹中。 我不明白为什么它没有显示在 XAML 代码编辑器下拉列表中。DataTypeTFolderItemMyProject.Classes

这是视图的 xaml:

这是视图模型:

0 投票
1 回答
1024 浏览

wpf - Visual Studio XAML 设计器可以处理带有空格的字体系列名称作为资源吗?

这可能看起来是一个奇怪的问题,但我无法看到我在 WPF 应用程序中作为资源加载的自定义 true-type 字体,我想知道它是否与字体名称。

如其他地方所述(数百个示例之一),我已将字体添加到Fonts我的应用程序的文件夹中,并将其设置为Build Action= Resource。我可以TextBlock使用简单的FontFamily="Fonts\#My Font".

不幸的是,字体只在运行时出现,而不是在 XAML 设计器中(与大多数人的问题相反)。但是,正如这里所解释的,这个作者的字体也有类似的问题Open Sans,如果我像他那样在我的系统上安装字体,我可以在设计时看到它。

但我宁愿不强迫开发人员在他们的系统上安装字体。我注意到,像上面的作者一样,我没有这个问题,一些自定义字体的名称没有空格。所以我想知道这是否可能是 Visual Studio 中的一个错误(我正在使用 Community 2013)。有没有人能够让它与名称包含空格的字体一起使用?或者有没有人找到更令人满意的解决方法(例如,在没有类似于 Windows 短文件名的空格的情况下引用字体的方法)?