2016-01-16 3 views
0

Я сделал простой пользовательский элемент управления Silver Light (пользовательская панель) с одним текстовым полем (с именем «поле»), и я пытаюсь представить пользовательские панель в форме, но хотя класс запущен, и я могу видеть информацию об отладке («Control Init 2» и «Control Load 2» находятся в выводе Debug), но панель и текстовое поле не отображаются.C# SilverLight User Control - Пользовательская панель не представлена ​​в форме (файл XAML.CS)

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

Показать свою часть 'xaml'. И вы должны подумать, хотите ли вы создать «Контроль» или «Панель», это огромная разница. Итак, этот базовый класс, из которого вы строите ... это «Контроль» или «Панель»? – Martin

+0

Привет, Martin Я обновил код с помощью части XAML. Скажите, пожалуйста, если что-то не определено правильно – Dejan

+0

вы можете определить, почему панель не представлена? Как я уже сказал, когда я включаю вывод Debugger, он записывается на выходе – Dejan

ответ

1

Из XAML вы представили (как а также из кода .cs) Я вижу, что вы не используете типичный UserControl. Вместо этого вы используете что-то, называемое W6CustomPanelControlBase от W6.Web.FormEngine.PropertyPanels.

Что это такое и как это работает? Понятия не имею. Не зная, как это работает, вам будет сложно рассказать вам, что вы сделали неправильно.

Также - как правило, UserControl отображается как часть другого XAML - это Page, другой UserControl или Frame. Код XAML, который вы опубликовали, является только самим пользовательским элементом управления, но не тем, как он показан - другими словами - проблема может не заключаться в самом пользовательском управлении, а в том, как это показано.