English 中文(简体)
将内容添加到用户控制
原标题:Add Content to UserControl

我有一个用户控制中心 名为我的控制 里面有三栏网格

<Grid Name="main">
  <Grid Grid.Column="0"/><Grid Grid.Column="1"/><Grid Grid.Column="2"/>
</Grid>

客户可以这样使用它,这没关系。

<myControl />

我的问题是,客户想要在“主”网格第一栏中添加元素,例如:

<myControl>
  <TextBlock Text="abc"/>
</myControl>

在此情况下, TextBlock 将取代原始内容, 这是“ 主” 网格 。

我应如何支持补充内容?

最佳回答

您可使用以下方式:

// This allows "UserContent" property to be set when no property is specified
// Example: <UserControl1><TextBlock>Some Text</TextBlock></UserControl1>
// TextBlock goes into "UserContent"
[ContentProperty("UserContent")]
public partial class UserControl1 : UserControl
{
    // Stores default content
    private Object defaultContent;

    // Used to store content supplied by user
    private Object _userContent;
    public Object UserContent
    {
        get { return _userContent; }
        set
        {
            _userContent = value;
            UpdateUserContent();
        }
    }

    private void UpdateUserContent()
    {
        // If defaultContent is not set, backup the default content into it
        // (will be set the very first time this method is called)
        if (defaultContent == null)
        {
            defaultContent = Content;
        }

        // If there is something in UserContent, set it to Content
        if (UserContent != null)
        {
            Content = UserContent;
        }
        else // Otherwise load default content back
        {
            Content = defaultContent;
        }
    }

    public UserControl1()
    {
        InitializeComponent();
    }
}
问题回答

暂无回答




相关问题
WPF convert 2d mouse click into 3d space

I have several geometry meshes in my Viewport3D, these have bounds of (w:1800, h:500, d:25). When a user clicks in the middle of the mesh, I want the Point3D of (900, 500, 25)... How can I achieve ...

Editing a xaml icons or images

Is it possible to edit a xaml icons or images in the expression design or using other tools? Is it possible to import a xaml images (that e.g you have exported) in the expression designer for editing?...

WPF: writing smoke tests using ViewModels

I am considering to write smoke tests for our WPF application. The question that I am faced is: should we use UI automation( or some other technology that creates a UI script), or is it good enough to ...

WPF - MVVM - NHibernate Validation

Im facing a bit of an issue when trying to validate a decimal property on domain object which is bound to a textbox on the view through the viewmodel. I am using NHibernate to decorate my property on ...

How do WPF Markup Extensions raise compile errors?

Certain markup extensions raise compile errors. For example StaticExtension (x:Static) raises a compile error if the referenced class cannot be found. Anyone know the mechanism for this? Is it baked ...

WPF design-time context menu

I am trying to create a custom wpf control, I m wondering how I can add some design-time features. I ve googled and can t seem to get to my goal. So here s my simple question, how can I add an entry ...

How to combine DataTrigger and EventTrigger?

NOTE I have asked the related question (with an accepted answer): How to combine DataTrigger and Trigger? I think I need to combine an EventTrigger and a DataTrigger to achieve what I m after: when ...

热门标签