问题标签 [custom-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.
c# - c#:在自定义控件中旋转文本
我正在尝试在标签中旋转一些文本。我有一个自定义标签,它允许我控制文本呈现过程。
我遇到的问题是旋转似乎发生在控件的原点周围,即坐标(0,0)。有没有一种方法可以让文本围绕控件的中心而不是 oragin 旋转?
我知道函数“g.RotateTransform()”,因此一种可能的解决方案是旋转文本,然后将其翻译到控件的中心。如果这是管理工作的唯一方法,是否有一种通用的方式可以计算转换以确保文本位于控件的中心?
谢谢
silverlight - 引用 Silverlight 中控件的默认样式
如何引用 generic.xaml 中出现的默认样式?
我正在尝试创建一个返回自定义控件的已知样式的静态类。我知道如何提取 App.xaml 中存在的样式,但我不确定如何获取通用样式。
谢谢!
wpf - 当其他窗口处于焦点时隐藏弹出控件
我有一个自定义 UserControl,它试图为文本框重新创建自动完成功能。当用户键入时,文本用于过滤提供的项目集合,然后弹出窗口显示一个列表框,其中包含与用户键入的内容相匹配的项目。
不幸的是,如果用户决定从应用程序切换到另一个窗口(浏览器、MSWord 等等!),弹出窗口仍然位于所有其他窗口的顶部!
此外,如果我在弹出窗口打开的情况下移动窗口(托管自定义控件),弹出窗口将保持原位(并且不跟随窗口)!这有点有趣,但显然是不可接受的行为。我环顾四周,但只发现一篇关于此的帖子两年没有得到答复:(
vb.net - 创建自定义控件...无法创建“文本”属性?
解决方案
我做了一些谷歌搜索并找到了这个论坛帖子,这就是我需要做的:
我应该说我对创建自定义控件真的很陌生,所以我不知道整个过程的所有细节。
我正在创建一个自定义控件,其功能类似于复选框,但使用两个图像作为选中/未选中。我正在尝试添加一个 Text 属性,但它给了我这个警告:
“属性‘文本’在基类‘UserControl’中隐藏了一个可重写的方法。要重写基方法,该方法必须声明为‘Overrides’。”
好的,所以这没问题。我将声明更改为Overrides Property Text() As String
,但是当我去测试它时,“文本”未在属性下列出。我需要采取其他步骤来获得结果吗?
更多细节
我的控件由 2 个(或 3 个,取决于您如何看待它)组成:
- PictureBox - 显示选中/未选中的图像
- 标签 - 控件上显示的文本
- PictureCheckBox - 这是实际控件的名称
PictureBox 停靠在 PictureCheckBox 的左侧,Label 停靠在右侧:
c# - UserControl 作为界面,但在设计器中可见
所以我们有一个 C# WinForms 项目,其中的 Form 包含一个 bazillion UserControl
s。除了自己的特定成员外,每个都UserControl
自然地公开所有方法、属性等。UserControl
我一直在想降低处理这些UserControl
s 复杂性的一种方法是通过接口访问它们。因此,与其拖放以将其UserControl
放在表单上,不如在构造函数中使用类似这样的内容:
SomeCustomerNameUserControl
实现ICustomerName
,自然,并ICustomerName
包含我真正关心的特定属性(比如,FirstName
和LastName
)。通过这种方式,我可以UserControl
通过cName
成员引用,而不是被所有UserControl
成员击倒,我只得到ICustomerName
.
一切都很好,但问题是如果我这样做,我SomeCustomerNameUserControl
在设计器中看不到。有谁知道我可以做到这一点,但仍然可以UserControl
在表单的设计表面上看到?
编辑:一种不太复杂的方法是将控件放在基本表单上。默认情况下(在 C# 中),控制成员是私有的。然后我为每个通过接口公开它的控件创建一个属性。
但是,即使它更复杂,我也会对其他方式感兴趣。似乎有一些方法可以使用 IDesignerHost,但我找不到任何适用的示例。
asp.net - 在设计视图中根据需要标记控件属性
我想强制控件的使用者在将控件放在页面上时给属性一个值。
在 VisualStudio 中,当您在用户控件上创建没有属性 SRC 或 ALT 的 < img > 标记时,它会带有下划线,表示 SRC 和 ALT 是必需的属性。我认为这只是编辑器对标签的特殊处理,但是有没有办法为控件定义类似的行为?
如果控件具有这样定义的属性:
有没有办法使用自定义属性或其他会在设计器中标记的东西?
.net - 将列功能添加到自定义中继器
我正在尝试扩展我拥有的自定义中继器,以便以表格方式显示(与 Gridview 相当相似)。我在概念上希望实现的是获得可以通过以下方式应用的东西:
任何人都可以提出一种可以实现的方法吗?我可以以某种方式为实现 ITemplate 的类创建一个集合吗?
谢谢,史蒂夫
!编辑!
我通过在转发器中创建一个具有 ITemplate 属性和 generic.list(of Col) 属性的新类 (Col) 来实现它。因此,要添加项目,我执行以下操作:
让我知道是否有人有更好的解决方案
wpf - 一次更新 UserControl 中的所有绑定
当 UserControl 的可见性更改为 Visible 时,我需要更新其上的所有绑定。几乎我所有的绑定都绑定到用户控件的 DataContext 属性,所以我正在尝试更新该绑定的目标:
但是我得到null
了方法的结果,GetBindingExpression(..)
我想知道我是否用错了。
此外,是否有任何其他好方法来刷新控件上的所有绑定(使用 DataContext 作为源)。
wpf - 自定义控件的集合属性的 DataBinding 失败
我有一个用户控件 - 说“ControlBase”。它具有“SomeItems”属性,这是一个ObservableCollection<InheritedFromDO>
从InheritedFromDO
“DependencyObject”继承的类。
当我为子类创建标记时,ControlBase
我想启动“SomeItems”集合。但不知何故,我无法在该标记中使用绑定,尽管控件具有非常正常的 DataContext 并且绑定在正常情况下有效。
它看起来像这样:
输出说:
System.Windows.Data Error: 2 : Cannot find governing FrameworkElement or FrameworkContentElement for target element. BindingExpression:Path=Id; DataItem=null; target element is 'SomeItem' (HashCode=26965808); target property is 'DepPropertyOne' (type 'Object')
任何想法如何使它工作?