问题标签 [xamlreader]

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 回答
285 浏览

wpf - XamlReader.Parse 和 RadioButton GroupName

我有一个很奇怪的问题。有没有可能拥有这两个控件radionewRadio拥有属性IsChecked == true。在执行第 6 行中的代码之前radio.IsChecked == true,但在执行第 6 行中的代码之后radio.IsChecked == falsenewRadio.IsChecked == true.

这两个单选按钮是否有可能IsChecked == true相同GroupName

0 投票
0 回答
446 浏览

wpf - 当值作为 XAML 元素写入时,不会为属性值调用 TypeConverter

假设我在一个类中有一个MyProperty类型的属性。我想使用 XAML 为它分配另一种类型的复杂值(例如,我们以 为例)。因此,我创建了可以转换为并应用于该类的内容。MyTypeMyClassStringMyTypeConverterStringMyType[TypeConverter(typeof(MyTypeConverter))]MyClass

以下代码工作正常(即调用 MyTypeConverter.ConvertFrom):

但是,一旦我将属性值更改为 XAML 元素,TypeConverter 就不再被调用,这会导致转换异常。

如何为定义为 XAML 元素的值实现转换?

0 投票
1 回答
1502 浏览

c# - 带图像的 XamlReader

我正在 WPF (.Net 3.5) 中创建一个应用程序,我希望能够基于每个客户端进行自定义。我将资源抽象为外部 xaml(主题)文件。使用构建为 a 的 xaml 文件Page,这很完美。

现在我想使用XamlReader动态加载主题的 xaml 文件。这样我可以编译应用程序,其他人可以自定义应用程序(每个客户端),而无需处理重新编译或访问源代码。这是我正在做的事情的快照:

现在这似乎可以正确解析 Xaml。但是,我现在收到如下错误:

我希望能够为每个客户端更改这些资源(徽标图像等),因此我将构建操作从Resourceto更改None为始终复制到输出目录。

关于如何在运行时解析 Xaml 并更改我的配置以获取不需要在程序集中编译的图像资源是否有任何建议?还是我完全不在基地,有更好的方法来实现这个主题定制?


更新:

这是给出错误的确切行:

但那是因为这是第一个加载的资产。这是另一个例子:

这些仅用于通过以下方式访问的样式:

或者

0 投票
1 回答
419 浏览

c# - 以编程方式在加载的松散 xaml 文件中的控件上设置文本

我想在加载的松散 xaml 文件中定义的 TextBoxes 中设置文本。文本框是应用程序的一部分。

xaml 文件是这样的:

这是一个细节视图,必须在不编译新应用程序的情况下进行定制。松散的 xaml 文件的数量及其名称在编译时是未知的。

如何动态设置文本框上的文本?我有一个额外的 xml 文件,可以指定哪些数据来自哪个 TextBox。

0 投票
1 回答
332 浏览

wpf - 尽管创建了新的 Window 实例,但我不能使用 Window.Show

这是问题所在:在我的 WPF 应用程序中,我曾经使用 XamlReader.Load 方法加载/解析我的 .xaml 文件以在我的应用程序中打开一个窗口。

返回窗口的函数的代码片段:

我用它来显示用户想要看到的所有不同的窗口。

当用户使用 win.Close 切换到另一个窗口时,我使用 win.Show 打开窗口并关闭它。它运作良好!

现在为了提高性能,我计划在应用程序启动时执行所有 XAMLReader.Load 并将信息存储到字典中:

然后我想在调用窗口时使用该信息:

现在这很好用,但是当我使用 win.Close 关闭窗口时,尝试使用 win.Show 再次打开它时出现错误,尽管我创建了一个新的 Window 实例?

System.InvalidOperationException 在窗口关闭后无法设置可见性或调用 Show、ShowDialog...。

但是当我不使用 Dictionary Method 而是直接使用 XAMLReader.Load 时它可以工作 - 有什么想法吗?不知何故,我通过返回 XamlReader.Load 得到的窗口似乎与字典中存储的信息不同?我错过了什么吗?提前致谢!

0 投票
1 回答
626 浏览

wpf - 在通过 XamlReader 解析的 UserControl 上设置 Canvas.Left

我玩过一点WPF。我想要做的是将自定义控件从模板调色板窗口拖到另一个窗口的画布上,并在那里创建该自定义控件的克隆。这与您在 Visio 中看到的非常相似。

为了从调色板中克隆模板控件,我滥用了 XamlWriter 和 XamlReader 的序列化和反序列化功能。

在我的下拉回调中,我有以下代码:

我的用户控件如下所示:

但是,Canvas.SetLeft()不要Canvas.SetTop()做任何事情。克隆始终添加到目标画布的左上角。如果我使用任何其他 WPF-Control 而不是我的用户控件,则此代码可以正常工作。

我想,克隆的用户控件还不是任何视觉层次结构的一部分,存在问题。但是,我想知道 MS 控件在哪些方面做得更好才能使上述代码正常工作。由于我对 WPF 很陌生,所以我不确定我应该寻找什么来修复我的用户控件。非常感谢任何指针。

0 投票
1 回答
1250 浏览

wpf - XamlReader 解析后恢复绑定

我的问题如下:在我的程序中,我让用户在画布上放置形状(类 DrawingShape)。Drawing Shape 封装了一个堆叠的路径和标签:

所以一些视觉设置和标签文本绑定到代码隐藏文件的属性。

使用这些绘图形状反序列化 Canvas 后,我需要恢复 XAML 和代码隐藏文件之间的绑定。我试过这个,但它似乎不起作用:

无论我对代码隐藏属性做什么(例如更改 FillBrush),所显示的 DrawingShape 的视觉效果都不会更新。我在这里错过了重要的一步吗?

我在看到这个问题后添加了:shape.BeginUpdate()Bindings not applied to dynamic-loaded xamlshape.EndUpdate()

非常感谢您的任何见解

编辑 2012-09-25

查看另一段不依赖于任何绑定的代码让我想知道,我是否可以在反序列化后通过它们的 x:Name 实际引用 Xaml-Definition 中的任何元素。以下回调不对形状执行任何操作:

调试告诉我,内容shape似乎刚刚好。当我执行一次命令时,shape.geometryCanvas.LayoutTransform是单位矩阵。第二次执行时,shape.geometryCanvas.LayoutTransformTransformGroup两个元素中的一个。

不知何故,看起来geometryCanvas(在 Xaml 中声明的)的参考不是屏幕上使用的参考。

0 投票
0 回答
337 浏览

silverlight - 来自字符串的 Silverlight LoadComponent

欢迎大家

基本上,在 Silverlight 4 或 5 中,我想调用Application.LoadComponent()给定的有效 xaml 内容。问题是,这个 xaml 是动态创建的,并且不存在于可用于 URI 的资源中。

通常,这会起作用:

但我需要类似的东西:

我不能使用XamlReader.Load(),因为我的 xaml 包含x:Class="...",这是这种方法不可接受的。

我要如何继续?我在想把字符串放进去MergedDictionary什么的,但是,如何让URI指向它呢?

0 投票
1 回答
319 浏览

silverlight - 使用 XamlReader.Load() 从文件创建 Prism 区域时出错?

我将 Silverlight 5 与 Prism 和 MEF 一起使用。

我试图通过读取 XAML 文件在运行时替换我的 shell,从中创建一个 UIElement 并用新的 UIElement 替换旧 shell 的内容。我正在使用XamlReader.Load()这个。

这有效,直到我尝试创建 Prism 区域。

我可以创建一个只有一个棱镜区域的新外壳,但是当我在新外壳中有两个或更多区域时,我得到的只是浏览器中的一个空白屏幕,并且没有错误消息。

有没有办法调试这个?为什么会这样?

代码:

创建 UIElement 并替换 shell(在 Shell.xaml.cs 中):

这有效(一个地区):

这也有效(两个常规内容控件):

但这给了我一个空白屏幕(两个棱镜区域):

0 投票
1 回答
118 浏览

c# - 为什么我无法捕捉到这个异常?

为什么我无法捕捉到以下内容XamlParseException

在此处输入图像描述

单击“继续”按钮后,程序继续正常行为(捕获异常并ex.Message在控制台上打印)。

问题是 Visual Studio 异常对话框。为什么会出现?