c# – 使用wpf中的父元素的UserControl?

c# – 使用wpf中的父元素的UserControl?,第1张

概述当你在wpf中有一个usercontrol时,它可以到达其父元素的外部吗?例如,我的用户控件只列出了控件内部的一些通用的东西,它们被封装在主窗口的dockpanel中,但是我在主窗口中有一个文本框和按钮,我想从控件中访问…这可能吗? 这将节省我很多时间,而不是改变整个窗口的内容,并在每个用户控件中显示相同的文本框/按钮.如果有人有这方面的例子,我将不胜感激. 是的,这是可能的,这里有一些我用来编写 当你在wpf中有一个usercontrol时,它可以到达其父元素的外部吗?例如,我的用户控件只列出了控件内部的一些通用的东西,它们被封装在主窗口的dockpanel中,但是我在主窗口中有一个文本框和按钮,我想从控件中访问…这可能吗?

这将节省我很多时间,而不是改变整个窗口的内容,并在每个用户控件中显示相同的文本框/按钮.如果有人有这方面的例子,我将不胜感激.

解决方法 是的,这是可能的,这里有一些我用来编写具有DP的UserControl演示文稿的代码.

我甚至不爱它,但它确实有效.我也认为这是一个很棒的主题,也许一些代码可以帮助我们找到更好的答案!

干杯,
浆果

UserControl XAML

<button x:name="btnAddNewItem" Style="{StaticResource bluebuttonStyle}" >    <StackPanel OrIEntation="Horizontal">        <Image Source="{resx:Resx Resxname=Core.Presentation.Resources.MasterDetail,Key=bullet_add}" Stretch="Uniform" />        <Label x:name="tbItemname" margin="5" Foreground="White" padding="10,0">_Add New [item]</Label>    </StackPanel></button>

UserControl代码背后

public partial class AddNewItembutton : UserControl{    ...    #region Item name    public static Readonly DependencyProperty ItemnameProperty = DependencyProperty.Register(        "Itemname",typeof(string),typeof(AddNewItembutton),new FrameworkPropertyMetadata(OnItemnameChanged));    public string Itemname    {        get { return (string)GetValue(ItemnameProperty); }        set { SetValue(ItemnameProperty,value); }    }    public string buttonText { get { return (string) tbItemname.Content; } }    private static voID OnItemnameChanged(DependencyObject obj,DependencyPropertyChangedEventArgs args)    {        // When the item name changes,set the text of the item name        var control = (AddNewItembutton)obj;        control.tbItemname.Content = string.Format(GlobalCommandStrings.Subject_Add,control.Itemname.CAPItalize());        control.tooltip = string.Format(GlobalCommandStrings.Subject_Add_tooltip,control.Itemname);    }    #endregion    #region Command    public static Readonly DependencyProperty CommandProperty = DependencyProperty.Register(        "Command",typeof(ICommand),new FrameworkPropertyMetadata(OnCommandChanged));    public ICommand Command    {        get { return (ICommand)GetValue(CommandProperty); }        set { SetValue(CommandProperty,value); }    }    private static voID OnCommandChanged(DependencyObject obj,set the text of the item name        var control = (AddNewItembutton)obj;        control.btnAddNewItem.Command = control.Command;    }    #endregion}

另一个显示组合的UserControl

<UserControl ...         xmlns:uc="clr-namespace:Smack.Core.Presentation.Wpf.Controls.UserControls"          >    <DockPanel LastChildFill="True">        ...        <uc:AddNewItembutton x:name="_addNewItembutton" margin="0,10 0" DockPanel.Dock="Right"  />        ...    </DockPanel></UserControl>
总结

以上是内存溢出为你收集整理的c# – 使用wpf中的父元素的UserControl?全部内容,希望文章能够帮你解决c# – 使用wpf中的父元素的UserControl?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1248558.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存