gpt4 book ai didi

c# - 我的用户控件上的所有基本属性都需要依赖属性吗?

转载 作者:行者123 更新时间:2023-11-30 23:21:07 25 4
gpt4 key购买 nike

我目前正在编写我的第一个用户控件,它将在堆栈面板中包含一个标签和一个文本框,如下所示:

<Grid>
<StackPanel Orientation="Horizontal" DataContext="{Binding RelativeSource={RelativeSource Self}}">
<Label Content="{Binding Label}" Width="60"></Label>
<TextBox Text="{Binding TextBoxContent}" Width="60"/>
</StackPanel>
</Grid>

这在设置页面中最有用,因为它将被重复用于多个不同的设置。对于这些设置中的每一个,我都想设置(至少)宽度、高度、验证规则和错误模板属性。至于文本本身,我已经为标签和文本框创建了一个依赖属性(如您在上面的代码片段中所见)。

我的问题是:我是否需要为我刚才提到的所有我想在实际使用用户控件时设置的属性创建一个依赖属性?这似乎是多余的工作(因为它们已经存在于文本框中,基本上它们只会将我的用户控件的属性重定向到文本框的同名属性)?如果我想在我的文本框上使用更多的属性(例如,AcceptsReturn 等),这就更麻烦了。

最佳答案

如果您决定从 TextBox 而不是 UserControl 派生,则可以节省多余的工作 - 只需将您的控件视为“带标签的文本框”即可do 是派生自 TextBox 并添加所需的依赖属性以适应标签。对于更复杂的用户控件,情况当然不是这样,但在您的情况下似乎没问题。

虽然这样做的缺点是您必须采用 TextBox 的默认控件模板并使用它来添加您的标签,这可能有点棘手。

无论哪种方式,我都建议您查看 Control Authoring Overview MSDN 上的页面,这在您用 WPF 编写第一个控件时非常有用。

关于c# - 我的用户控件上的所有基本属性都需要依赖属性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39421620/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com