问题标签 [wpf-controls]

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 投票
8 回答
23802 浏览

c# - 在 WPF 中更改 Canvas 的坐标系

我正在编写一个使用 Canvas 定位元素的地图应用程序。对于每个元素,我必须以编程方式将元素的 Lat/Long 转换为画布的坐标,然后设置 Canvas.Top 和 Canvas.Left 属性。

如果我有一个 360x180 画布,我可以将画布上的坐标转换为 X 轴上的 -180 到 180 而不是 0 到 360 和 Y 轴上的 90 到 -90 而不是 0 到 180?

缩放要求:

  • 画布可以是任何尺寸,所以如果它是 360x180 或 5000x100,它仍然可以工作。
  • Lat/Long 区域可能并不总是 (-90,-180)x(90,180),它可以是任何东西(即 (5,-175)x(89,-174))。
  • PathGeometry 等基于点的元素,而不是基于 Canvas.Top/Left 的元素需要工作。
0 投票
1 回答
11351 浏览

c# - 带有项目/数据模板的 WPF 自定义控件

我知道如何在 WPF 中创建自定义用户控件,但我怎样才能做到这一点,以便有人可以提供 ItemTemplate?

我有一个用户控件,它混合了几个其他 WPF 控件,其中一个是 ListBox。我想让控件的用户指定列表框的内容,但我不确定如何传递该信息。

编辑:接受的答案适用于以下更正:

0 投票
3 回答
27199 浏览

wpf - WPF 用户控件的 DataContext 为 Null

我有一个用户控件,其中控件的 XAML 可以像正常一样绑定到父数据上下文中的适当属性(数据上下文在 xaml 中传播)。

例如,我有一个窗口,我将其 DataContext 设置为 ObjectA。然后我在窗口中的用户控件尝试访问 dataContext 中的属性

所以我的窗口的 xaml 和后面的代码都可以看到一个非空的 DataContext。

我的 DataContext 传播到的控件可以在 Xaml 中看到非 null DataContext,但在后面的代码中看不到。

处理这个的正确方法是什么?

0 投票
1 回答
415 浏览

wpf - WrapPanel 和第一行

我有包裹在包裹面板中的物品。我想将第一行项目向下移动一些偏移量。

是否可以?

谢谢

0 投票
1 回答
2379 浏览

wpf - 是否有与 Windows 窗体列表框 TopIndex 等效的 WPF 列表框?

基本上我想要做的是允许用户输入一个字符串值并让列表框滚动到与他们输入的文本匹配的项目(或第一个 LIKE 匹配)。

如果我使用 .ScrollIntoView() 方法,问题是如果项目在列表中比当前滚动位置更靠下,它会将项目放在可见区域的底部,如果它更高,它会在顶部在列表中比当前滚动位置。我想通过使其成为列表中的顶部项目来使其保持一致(除非它当然不能因为它是项目的最后“页面”之一)。

我试图通过选择列表中更靠下的x项目来伪造它,其中 x 是可见项目的数量。这在下降时有效,但在上升时会中断。而且我一直无法确定哪个索引当前是我列表中最显眼的位置。

WinForms 列表框具有 .TopIndex 属性,该属性正是我正在寻找的,但我一直无法找到 WPF 等价物。那里的任何人都知道如何做到这一点?

提前致谢!

0 投票
4 回答
41451 浏览

c# - 如何在 WPF 中制作模板窗口?

所以我正在构建一个应用程序,它将有很多窗口,所有窗口都具有相同的基本布局:

  1. 一个主窗口
  2. 顶部角落的徽标
  3. 标题栏
  4. 底部的状态显示
  5. 窗口特定控件的区域。

目前我必须在每个窗口中重新创建这个结构。理想情况下,我希望将此布局编码在一个地方,也许是为了便于使用而定制的 Window 子类。有没有人有任何关于如何开始的线索,或者以前遇到过类似问题的经验?

0 投票
1 回答
545 浏览

wpf - 尝试在 WPF 中实现 VirtualizingPanel 时未调用 OnItemChanged

我正在尝试在 WPF 中实现我自己的 VirtualWrapPanel。

我以这种方式实现它:

但是永远不会调用 OnItemsChanged 方法,导致控件不释放对象......知道吗?谢谢乔纳森

0 投票
5 回答
3579 浏览

wpf - WPF Window无法识别同一个项目中定义的用户控件怎么办?

我在 XAML 中有一个窗口“操作”,它使用在同一项目中定义的用户控件“状态”。当我构建解决方案时,它返回正常,但是当我打开窗口的设计视图时,Visual Studio 说“无法创建'状态'类型的实例。窗口“操作”的 XAML 如下:

xmlns:tci是 Status Usercontrol 所在的命名空间。并tci:Status在发生此错误时变为蓝色下划线。如何使用这样的 UserControl?

0 投票
2 回答
2244 浏览

wpf - 如何在不切断选项卡的情况下向我的 WPF TabItems 添加水平边距?

在尝试应用 10 的左边距之前,我的 TabItems 看起来像:

替代文字

尝试将左边距 10 应用于蓝色选项卡后,蓝色选项卡被切断,如下所示:

替代文字

我该如何正确地做到这一点?

0 投票
7 回答
163872 浏览

c# - 如何将 WPF 用户控件的宽度拉伸到其窗口?

我有一个带有用户控件的窗口,我想让用户控件宽度等于窗口宽度。怎么做?

用户控件是一个水平菜单,包含一个三列网格:

这就是我想要窗口宽度的原因,将用户控件拉伸到 100% 宽度,第二列相对。

编辑:

我正在使用网格,有 Window 的代码: