我用一个文本框(名为" 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>
答案 0 :(得分:1)
从您提供的XAML(以及.cs代码)中我可以看到您没有使用典型的UserControl
。相反,您使用的是W6CustomPanelControlBase
中名为W6.Web.FormEngine.PropertyPanels
的内容。
这是什么以及如何运作?我不知道。在不知道它是如何工作的情况下,很难告诉你你做错了什么。
此外 - 通常UserControl
显示为另一个XAML的一部分 - Page
,另一个UserControl
或Frame
。您发布的XAML代码只是用户控件本身,而不是它的显示方式 - 换句话说 - 问题可能不在于用户控件本身,而在于它的显示方式。