|ZYCWPF| 用户自定义控件,如何给我原来RichTextBox添加事件?
我定义了
public partial class ZRichTextBox : RichTextBox
这个用户控件
<Style TargetType="{x:Type control:ZRichTextBox}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type control:ZRichTextBox}">
<DockPanel LastChildFill="True">
<Border DockPanel.Dock="Top" SnapsToDevicePixels="True"
BorderBrush="{TemplateBinding ToolbarBorderBrush}"
BorderThickness ="{TemplateBinding ToolbarBorderThickness}">
<StackPanel Height="24" Orientation="Horizontal"
Background="{TemplateBinding ToolbarBackground}">
.....这里为我的工具栏按钮
</StackPanel>
</Border>
<ScrollViewer x:Name="PART_ContentHost" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto">
</ScrollViewer>
</DockPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
//this.DataContext = this;
}
谢谢
[解决办法]
写在ControlTemplate中也可以的,就用以前说的方法还是可以的:
然后在ViewModel里添加命令处理程序,在EventCommand.cs文件中添加新的事件命令类:
<ScrollViewer x:Name="PART_ContentHost" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto"
Background="{TemplateBinding Background}"
z:MouseLeftButtonUp.Command="{Binding OnMouseLeftButtonUp}">
</ScrollViewer>
public class MouseLeftButtonUp : EventCommand<MouseLeftButtonUp> { static MouseLeftButtonUp() { Register(UIElement.MouseLeftButtonUpEvent); } }
public class MouseLeftButtonDown : EventCommand<MouseLeftButtonDown> { static MouseLeftButtonDown() { Register(UIElement.MouseLeftButtonDownEvent); } }