问题标签 [xaml]

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 投票
2 回答
989 浏览

.net - 是否可以共享 DataTrigger?

我在 XAML 中定义了一个 DataTrigger,我想在多个地方使用它。是否可以将其定义为资源然后共享?

这是我的触发器:

虽然我可以在我的 Window.Resources 中定义它并给它一个键,但我如何在我的 XAML 的其余部分中引用它?

0 投票
3 回答
4401 浏览

.net - 如何在 Silverlight 的组合框中为选定和下拉状态使用不同的模板?

我似乎无法为 ComboBoxItem 设置 ContentTemplate。我尝试这样做的原因是我想在组合框中为我的数据显示 2 次。当组合框打开(菜单关闭)时,我想要一个文本框(带有图像名称)和它下面的图像控件。当我选择项目时,我希望组合框只显示一个带有图像名称的文本框。

我想我可以通过修改 ComboBox 的 ItemTemplate 和 ItemContainerStyle 来实现。ItemContainerStyle 包含以下 ContentPresenter:

所以我假设我可以在这里设置 ContentTemplate 并且它会起作用。但我似乎无法让它工作:

这是我的组合框:

我可以让它工作的唯一方法是从 ItemContainerStyle 中删除 ContentPresenter,并将其替换为我的自定义模板 (ComboBoxItemTemplate) 的内容。但我认为我不应该使用这种方法,因为这意味着 ContentPresenter 不再存在(并且 ComboBox 中的代码可能依赖于它的存在)。

任何有关显示具有不同下拉列表和选定模板的组合框的帮助将不胜感激!

0 投票
3 回答
29675 浏览

wpf - 在 WPF 窗口中禁用除一个子控件之外的所有子控件

我的窗口上有一堆控件。其中之一是在后台线程上执行繁琐任务的刷新按钮。

当用户单击刷新按钮时,我将光标置于等待(沙漏)状态并禁用整个窗口 -- Me.IsEnabled = False

我想通过让用户单击取消按钮来支持取消刷新操作,但是当整个窗口被禁用时,我无法做到这一点。

除了一个一个地禁用每个控件(取消按钮除外)然后在用户单击取消时一个个地重新启用它们之外,还有其他方法吗?

0 投票
3 回答
537 浏览

.net - VS2008 XAML 设计视图阻塞命名空间 C++ 程序集

我有一个 C++ 程序集,其中托管和非托管代码都编译为 DLL。它已正确导入到项目引用中,因为我可以使用对象浏览器查看我的所有类及其成员。

问题在于 XAML 设计视图。在我的 XAML 代码中,我想用我的 C++ 程序集进行数据绑定,所以我有这样的命名空间:

CLI 是 dll 的名称,它内部有一个名为 kudu 的命名空间。设计视图拒绝显示 XAML 并给我这个错误:

最好的部分是我实际上可以构建整个解决方案并且一切正常!窗口会随着 C++ 对象的变化而更新,而不是什么。然而,如果没有设计视图,这会使继续开发变得相当困难。

有没有人回答为什么会发生这种情况以及我该如何解决?

0 投票
4 回答
24363 浏览

wpf - 在 WPF 中,如何使用 XAML 指定嵌套在目录中的文件的路径?

我正在尝试这样做...

但我得到这个错误......

无法将属性“Source”中的字符串“Images\unlock.png”转换为“System.Windows.Media.ImageSource”类型的对象。找不到资源“forms/images/unlock.png”。标记文件“Fuse;component/forms/mainwindow.xaml”第 273 行位置 51 中的对象“System.Windows.HierarchicalDataTemplate”出错。

如您所见,包含此 XAML 的表单位于名为 Forms 的文件夹中。我的图像位于名为 Images 的文件夹中。如何从表单映射到图像?

我试过Source="..Images\unlock.png"在 WPF 中不起作用。

有什么帮助吗?

0 投票
5 回答
1047 浏览

wpf - 有没有办法将 xaml.cs 中的公共方法的结果绑定到 xaml 中的控件?

让我们举一个非常简单的例子:

  • 在我的 window1.xaml 中,我有一个名为“lblProduct”的标签控件。
  • 在我的 window1.xaml.cs 中,我有一个名为 CalculateProduct(Int Var1, Int Var2) 的公共方法。正如您可能已经猜到的那样,CalculateProduct 将计算传入变量的乘积。

我想简单地将“CalculateProduct”的结果绑定到我的标签。我的实际用例比这要复杂一些。但是,如果我能够启动并运行它,我不仅会很高兴,而且还能弄清楚其余的事情。

我已经看到使用 ObjectDataProvider 绑定到新类的静态方法的有趣示例。虽然这很好,但是当我已经为我的窗口实例化了一个新类时,我觉得没有必要创建一个新类。此外,我可能想在 Window1 类中利用其他全局变量。

感谢您的时间和帮助,

亚伯。

0 投票
1 回答
19433 浏览

wpf - 如何在 WPF 中向 Treeview 添加图标?

我想在我的树视图中添加一些图标。有没有办法在 XAML 中做到这一点?

0 投票
5 回答
26268 浏览

.net - 如何防止 WPF GridSplitter 改变网格的大小?

WPF GridSplitter 使我的 Grid 比我的 Window 更宽!

我有一个带有 GridSplitter 的 WPF 网格。如果我调整列的大小,那么我可以使我的网格比我的窗口更宽并且不可见。

它是这样开始的:

WPF 网格 http://img201.imageshack.us/img201/9505/onehg6.jpg

但是加宽左栏后,我再也看不到右栏(绿色):

WPF GridSplitter http://img201.imageshack.us/img201/1804/twomy6.jpg

我究竟做错了什么?如何防止 GridSplitter 改变我的 Grid 的大小?


更新:

我仍在为此苦苦挣扎。我现在尝试在网格中嵌套网格。那没有帮助。这是我的 XAML ColumnDefinitions、RowDefinitions 和 GridSplitters...


更新:

我认为问题出在 WebBrowser 控件上。查看新问题:

WPF GridSplitter 不适用于 WebBrowser 控件?

0 投票
8 回答
103148 浏览

wpf - Horizo​​ntalAlignment=Stretch、MaxWidth 和 Left 同时对齐?

这似乎应该很容易,但我很难过。在 WPF 中,我想要一个 TextBox 可以延伸到其父级的宽度,但只能延伸到最大宽度。问题是我希望它在其父级中保持合理。要使其拉伸,您必须使用 Horizo​​ntalAlignment="Stretch",但结果会居中。我已经尝试过 Horizo​​ntalContentAlignment,但它似乎没有做任何事情。

如何让这个蓝色文本框随着窗口的大小而增长,最大宽度为 200 像素,并且左对齐?

有什么诀窍?

0 投票
4 回答
41964 浏览

c# - 如何在 WPF 中保持可缩放、可滚动内容的纵横比?

我对 WPF 相当陌生,并且遇到了一个似乎很难解决的问题。基本上我想要一个可扩展但保持正方形(或任何其他任意)纵横比的 4x4 网格。这实际上看起来很棘手,这让我感到惊讶,因为我认为这是一个相当普遍的要求。

我从这样的网格定义开始:

现在,如果您将其设置为拉伸,它可以填充 Window 或您放入的任何容器。行和列是统一的,但纵横比不固定。

然后我尝试将其放入 StackPanel 以使用可用空间。没有帮助。当我想起 Viewboxes 时,最让我感动的是什么。

现在我的内容缩放并保持纵横比。问题是,如果窗口不够宽,我的一些网格就会脱离屏幕。如果是这样的话,我希望能够滚动到它。同样,我可能需要一个最小尺寸,这也可能导致垂直滚动。

现在我尝试将我的 StackPanel 和 Grid (分别)放在适当的 ScrollViewer 容器中,但随后内容不再缩放以适应窗口。它变成全尺寸,这不好。

那么我该怎么做呢?我在吠叫错误的树吗?有没有更好/更简单的方法来做到这一点?