Как вызвать элемент из UseControl?

167
27 апреля 2018, 11:39

На UseControl у меня есть картинка и два эллипса (круга, как угодно), я хочу связать два UseControl на холсте , вывод UseControl на холст сделан, вопрос вот в чем как в основном коде сослаться на эллипс в UseControl.

##XML представление UseControl на холсте
    <ItemsControl x:Name="ic_canvas" Grid.Column="1">
            <ItemsControl.ItemsPanel>
                <ItemsPanelTemplate>
                    <Canvas/>
                </ItemsPanelTemplate>
            </ItemsControl.ItemsPanel>
            <ItemsControl.ItemTemplate>
                <DataTemplate>
                    <ContentPresenter Content="{Binding SelectedControl}" MouseDown="ContentPresenter_MouseDown" MouseMove="ContentPresenter_MouseMove" MouseUp="ContentPresenter_MouseUp">
                        <ContentPresenter.RenderTransform>
                            <TransformGroup>
                                <TranslateTransform X="{Binding Pos.X}" Y="{Binding Pos.Y}"/>
                                <RotateTransform Angle="{Binding Angle}"/>
                            </TransformGroup>
                        </ContentPresenter.RenderTransform>
                    </ContentPresenter>
                </DataTemplate>
            </ItemsControl.ItemTemplate>
        </ItemsControl>
## класс UseControl
     public class ViewModel : INotifyPropertyChanged

    {
      Point pos1;
      UserControl selectedControl;
      public Point Pos
      {
         get { return pos1; }
         set
         {
            pos1 = value;
            if (PropertyChanged != null)
               PropertyChanged(this, new PropertyChangedEventArgs("Pos"));
         }
      }
      public UserControl SelectedControl
      {
         get
         {
            return selectedControl;
         }
         set
         {
            selectedControl = value;
            NotifyPropertyChanged("SelectedControl");
         }
      }
      public event PropertyChangedEventHandler PropertyChanged;
      private void NotifyPropertyChanged([CallerMemberName] String propertyName = "")
      {
         PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
      }
      internal void MoveRef(Vector vector)
      {
         Pos += vector;
         if (PropertyChanged != null)
         {
            PropertyChanged(this, new PropertyChangedEventArgs("Pos"));
         }
      }
    }
##Сам Usecontrol
    <Grid>
        <Ellipse Width="5" Height="5" Fill="Black" MouseEnter="Ellipse_MouseEnter" MouseLeave="Ellipse_MouseLeave" Margin="98,22,-3,22"/>
        <Ellipse Width="5" Height="5" Fill="Black" MouseEnter="Ellipse_MouseEnter_1" MouseLeave="Ellipse_MouseLeave_1" Margin="-3,22,98,22"/>
        <ItemsControl x:Name="ic_battary">
            <ItemsControl.ItemsPanel>
                <ItemsPanelTemplate>
                    <StackPanel/>
                </ItemsPanelTemplate>
            </ItemsControl.ItemsPanel>
            <ItemsControl.ItemTemplate>
                <DataTemplate>
                    <Image Source="{Binding img}"  Margin="10" Width="100" Height="50"/>
                </DataTemplate>
            </ItemsControl.ItemTemplate>
        </ItemsControl>
    </Grid>

READ ALSO
Обращение к элементам формы

Обращение к элементам формы

Допустим у меня есть 10 textBox ( textBox1, textBox2,

140
Можно ли использовать Menu как ContextMenu?

Можно ли использовать Menu как ContextMenu?

Существует Menu, например такое:

175
Проблема получения записи из модели

Проблема получения записи из модели

Есть модель заказыЕсть форма на которой я работаю с этой моделью

209
Логирование в файл

Логирование в файл

Сейчас я выполняю логирование в debug строкой LogManagerGetLog = type => new DebugLog(type); в файле App

163