2010-10-20 9 views
-1

Это мой пользовательский элемент управления: -Добавление UserControl в другой пользовательский элемент управления

<UserControl 
    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:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    xmlns:ed="http://schemas.microsoft.com/expression/2010/drawing" 
    mc:Ignorable="d" 
    x:Class="NiceAnimation.ArcUserControl" 
    d:DesignWidth="72" d:DesignHeight="72"> 

    <Grid x:Name="LayoutRoot"> 
     <ed:Arc x:Name="arcControl" ArcThickness="20" ArcThicknessUnit="Pixel" EndAngle="360" Fill="#FFFF8700" Stretch="None" Stroke="Black" StartAngle="0" UseLayoutRounding="False" StrokeThickness="0"/> 
    </Grid> 
</UserControl> 

В моих MainPage.xaml.cs я создаю пользовательский элемент управления динамически, но это не получает создан. Даже исключение не возбуждено.

public partial class MainPage : UserControl 
    { 
     public MainPage() 
     { 
      // Required to initialize variables 
      InitializeComponent(); 
      this.Loaded += new RoutedEventHandler(MainPage_Loaded); 
     } 

     void MainPage_Loaded(object sender, RoutedEventArgs e) 
     { 
      Random objRandom = new Random(); 
      for (int intIndex = 0; intIndex < 30; intIndex++) 
      { 
       ArcUserControl objArcUserControl = new ArcUserControl(); 
       objArcUserControl.Opacity = 0.7; 
       //objArcUserControl.SetValue(Canvas.LeftProperty, (double) objRandom.Next(10, 640)); 
       //objArcUserControl.SetValue(Canvas.TopProperty, (double)objRandom.Next(10, 480)); 
       objArcUserControl.MouseEnter += new MouseEventHandler(objArcUserControl_MouseEnter); 
       //MainCanvas.Children.Add(objArcUserControl); 
       canLayer1.Children.Add(objArcUserControl); 

       // canLayer2.Children.Add(objArcUserControl); 
       // canLayer3.Children.Add(objArcUserControl); 
      } 

     } 

     void objArcUserControl_MouseEnter(object sender, MouseEventArgs e) 
     { 
      MessageBox.Show(e.GetPosition(this).ToString()); 
     } 
    } 

Что мне не хватает? Если я добавлю textbox вместо usercontrol, он будет работать. Заранее спасибо :)

ответ

-1

попробуйте просто добавить ArcUserControl в xaml и посмотреть, не делает ли он. Что такое canLayer1?

+0

Спасибо, но в usercontrol отсутствовала только высота и ширина. Изменил и работал! – TCM

Смежные вопросы