WPF C#:如何以编程方式将用户控件添加到拇指控件?
WPF C#: How to add a usercontrol to a thumb control programatically?
另一天,另一个问题 :) :
目前,在我的 XAML 中,我对 canvas 有一个拇指,其中包含一个用户控件:
<Canvas Name="SweetCanvas">
<Thumb Name="tmbThumb" Canvas.Left="245" Canvas.Top="185" DragDelta="Thumb_DragDelta">
<Thumb.Template>
<ControlTemplate>
<my:UserControl1 />
</ControlTemplate>
</Thumb.Template>
</Thumb>
</Canvas>
有效。但是我想以编程方式添加这样的拇指,所以我尝试了这个:
UserControl1 newUC= new UserControl1 (); //UserControl i want on the thumb
Thumb tmbDragThumb = new Thumb()
tmbDragThumb.DragDelta += new DragDeltaEventHandler(Thumb_DragDelta); //event for the thumb
//Dont really know what to do here :/
tmbDragThumb.Template = newUC; //Adding usercontrol to something something something?
SweetCanvas.Children.Add(tmbDragThumb); //add the final Thumb to Canvas
我真的不知道如何向这个拇指添加内容,就像我在 XAML
中所做的那样
我自己使用 FrameworkElementFactory 找到了一个解决方案:
Thumb tmbDragThumb = new Thumb();
tmbDragThumb.DragDelta += new DragDeltaEventHandler(Thumb_DragDelta);
ControlTemplate template = new ControlTemplate();
var fec= new FrameworkElementFactory(typeof(UserControl1 ));
template.VisualTree = fec;
tmbDragThumb.Template = template;
SweetCanvas.Children.Add(tmbDragThumb);
这很有帮助:
https://code.msdn.microsoft.com/windowsdesktop/WPF-Styles-and-Control-b6732c24
另一天,另一个问题 :) : 目前,在我的 XAML 中,我对 canvas 有一个拇指,其中包含一个用户控件:
<Canvas Name="SweetCanvas">
<Thumb Name="tmbThumb" Canvas.Left="245" Canvas.Top="185" DragDelta="Thumb_DragDelta">
<Thumb.Template>
<ControlTemplate>
<my:UserControl1 />
</ControlTemplate>
</Thumb.Template>
</Thumb>
</Canvas>
有效。但是我想以编程方式添加这样的拇指,所以我尝试了这个:
UserControl1 newUC= new UserControl1 (); //UserControl i want on the thumb
Thumb tmbDragThumb = new Thumb()
tmbDragThumb.DragDelta += new DragDeltaEventHandler(Thumb_DragDelta); //event for the thumb
//Dont really know what to do here :/
tmbDragThumb.Template = newUC; //Adding usercontrol to something something something?
SweetCanvas.Children.Add(tmbDragThumb); //add the final Thumb to Canvas
我真的不知道如何向这个拇指添加内容,就像我在 XAML
中所做的那样我自己使用 FrameworkElementFactory 找到了一个解决方案:
Thumb tmbDragThumb = new Thumb();
tmbDragThumb.DragDelta += new DragDeltaEventHandler(Thumb_DragDelta);
ControlTemplate template = new ControlTemplate();
var fec= new FrameworkElementFactory(typeof(UserControl1 ));
template.VisualTree = fec;
tmbDragThumb.Template = template;
SweetCanvas.Children.Add(tmbDragThumb);
这很有帮助: https://code.msdn.microsoft.com/windowsdesktop/WPF-Styles-and-Control-b6732c24