C#SilverLight用户控件 - 自定义面板未在表单上显示(XAML.CS文件)

时间:2016-01-16 12:49:50

标签: c# silverlight panel silverlight-5.0

我用一个文本框(名为" field")制作了非常简单的Silver Light用户控件(自定义面板),我试图在表单中显示自定义面板但是虽然触发了类,但我可以看到调试信息("控制初始化2"和"控制负载2"在调试输出中)但不显示面板和文本框。

XAML.CS文件如下:

namespace CustomPanel2
{
    public partial class SilverlightControl1 : W6CustomPanelControlBase
    {
        public SilverlightControl1()
        {
            InitializeComponent();
            Debug.WriteLine("Control Init 2");

        }

        private void LoadTest(object sender, RoutedEventArgs e)
        {
            field.Text = "aaa";
            Debug.WriteLine("Control Load 2");
        }
    }
}

XAML文件具有以下内容:Loaded="LoadTest"

XAML定义如下:

<BaseClass:W6CustomPanelControlBase
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:BaseClass="clr-namespace:W6.Web.FormEngine.PropertyPanels;assembly=W6.Web.FormEngine"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk" x:Class="CustomPanel2.SilverlightControl1"
    mc:Ignorable="d"
    d:DesignHeight="300" d:DesignWidth="400" Loaded="LoadTest">

    <Grid x:Name="LayoutRoot" Background="White">
        <TextBox x:Name="field" HorizontalAlignment="Left" Height="23" Margin="40,135,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="120" TextChanged="TextBox_TextChanged" Background="#FF30E6D5" FontWeight="Bold"/>


    </Grid>
</BaseClass:W6CustomPanelControlBase>

1 个答案:

答案 0 :(得分:1)

从您提供的XAML(以及.cs代码)中我可以看到您没有使用典型的UserControl。相反,您使用的是W6CustomPanelControlBase中名为W6.Web.FormEngine.PropertyPanels的内容。

这是什么以及如何运作?我不知道。在不知道它是如何工作的情况下,很难告诉你你做错了什么。

此外 - 通常UserControl显示为另一个XAML的一部分 - Page,另一个UserControlFrame。您发布的XAML代码只是用户控件本身,而不是它的显示方式 - 换句话说 - 问题可能不在于用户控件本身,而在于它的显示方式。