#c# #wpf #templates #slider
#c# #wpf #шаблоны #ползунок
Вопрос:
Мой вопрос, как мне получить доступ к элементу внутри Thumb? Я сделал небольшой конструктор и создал класс, производный от класса Thumb.
Когда я добавляю элемент в Canvas, я делаю это следующим образом:
ConnectableThumb dropThumb = new ConnectableThumb(); //class derived from Thumb
dropThumb.DragDelta = new System.Windows.Controls.Primitives.DragDeltaEventHandler(onDragDelta);
ControlTemplate template = new ControlTemplate();
var fec = new FrameworkElementFactory(typeof(Motor));//my Custom Control
template.VisualTree = fec;
dropThumb.Template = template;
CanvasFenster1.Children.Add(dropThumb);
или в XAML
<local:ConnectableThumb>
<local:ConnectableThumb.Template>
<ControlTemplate>
<local:ValveSymb x:Name="valve" PreviewMouseLeftButtonDown="valve_PreviewMouseLeftButtonDown" PreviewMouseMove="valve_PreviewMouseMove"></local:ValveSymb>
</ControlTemplate>
</local:ConnectableThumb.Template>
</local:ConnectableThumb>
У каждого из моих CustomControls есть адрес, который пользователь должен установить. Что я пытаюсь сделать, так это выполнить поиск по дочерним элементам Canvas и найти элемент с определенным адресом. Теперь моя проблема в том, что я получаю подключаемый Thumb только как элемент, и мне нужно получить доступ к элементу внутри этого Thumb.
Мой код
IEnumerable<ConnectableThumb> canvasElements = CanvasFenster1.Children.OfType<ConnectableThumb>();
foreach (ConnectableThumb element in canvasElements)
{
//need to get the Element inside of this ConnectableThumb
}
Мне нужен элемент внутри этого Thumb : D
Комментарии:
1. Вы можете использовать
ControlTemplate.FindName()
метод. Например;MyThumb.Template.FindName("")
.2. то, что я делаю, не похоже на то, что я пытаюсь найти конкретный элемент: я перебираю элементы canvas и пытаюсь найти один с определенным адресом.
3. Найдите в Google
find children wpf