Создал Usercontrol, вывожу его на холст по нажатию на картинку, вопрос заключается в том, как обратиться к этому Usecontrol (чтобы он "реагировал" на нажатии по нему мышкой). Если точнее, что прописать в DataTempate?
private void Image_MouseDown(object sender, MouseButtonEventArgs e)
{
var img = sender as Image;
var url = ((sender as Image).DataContext as Element).DisplayedImageShortUrl;
if (e.LeftButton == MouseButtonState.Pressed && url == "resistor.png")
{
resistor_UC rs = new resistor_UC();
ic_canvas.ItemsSource = new[] { rs };
}
if (e.LeftButton == MouseButtonState.Pressed && url == "battary.png")
{
battary_UC btr = new battary_UC();
ic_canvas.ItemsSource = new[] { btr };
}
if (e.LeftButton == MouseButtonState.Pressed && url == "key.png")
{
key_UC ky = new key_UC();
ic_canvas.ItemsSource = new[] { ky };
}
if (e.LeftButton == MouseButtonState.Pressed && url == "lamp.png")
{
lamp_UC lp = new lamp_UC();
ic_canvas.ItemsSource = new[] { lp };
}
}
Xaml:
<ItemsControl x:Name="ic_canvas" Grid.Column="1">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
Мысль в том, чтобы сделать на подобии:
<ItemsControl x:Name="ic_menu" Grid.Column="0" Margin="10,57,10,10">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Border BorderThickness="1" BorderBrush="Black">
<Image Source="{Binding img}" Margin="10" Width="100" Height="50" MouseDown="Image_MouseDown"/>
</Border>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Вопрос достаточно простой, но не простойЕсть папка на DropBox, куда время от времени попадает небольшой текстовый файл
Можно ли как-то произвести десериализацию разных по названию элементов, но одинакового содержимого в один список?
Возникла проблема при преобразовании переменной string в datetime
Подскажите пожалуйста, почему может не срабатывать событиеВот мой код