<ControlTemplate TargetType="{x:Type control:ZRichTextBox}">
                    <DockPanel LastChildFill="True">
                        <Border DockPanel.Dock="Top" SnapsToDevicePixels="True"
                            BorderBrush="{TemplateBinding ToolbarBorderBrush}"
                            BorderThickness ="{TemplateBinding ToolbarBorderThickness}">
                        </Border>
                        <ScrollViewer x:Name="PART_ContentHost" VerticalScrollBarVisibility="Auto"  HorizontalScrollBarVisibility="Auto"
                                      Background="{TemplateBinding Background}" z:MouseLeftButtonUp.Command="{Binding OnRichTextBoxMouseLeftButtonUp}"
                                       z:RichTextBoxSelectionChanged.Command="{Binding OnRichTextBoxSelectionChanged}">
                        </ScrollViewer>    </DockPanel>
                </ControlTemplate>
           
我可以给RichTextBox添加MouseLeftButtonUp事件,我想是因为ScrollViewer有这个事件
但是这个RichTextBoxSelectionChanged事件就绑定不上了谢谢

解决方案 »

  1.   

    你写错啦,SelectionChanged的事件参数是RoutedEventArgs,不是 SelectionChangedEventArgs。ScrollViewer可以添加MouseLeftButtonUp事件,准确地说应该是MouseLeftButtonUp是RoutedEvent,它会bubble到ScrollViewer
      

  2.   


    有点相不明白的是
    <ScrollViewer x:Name="PART_ContentHost" VerticalScrollBarVisibility="Auto"  HorizontalScrollBarVisibility="Auto"
                                          Background="{TemplateBinding Background}" z:MouseLeftButtonUp.Command="{Binding OnRichTextBoxMouseLeftButtonUp}"
                                           z:RichTextBoxSelectionChanged.Command="{Binding OnRichTextBoxSelectionChanged}">
                                <!--<AdornerDecorator x:Name="PART_ContentHost" />-->
                            </ScrollViewer>
    这里的是ScrollViewer 为什么会响应我的RichTextBox事件?
      

  3.   

    因为ScrollViewer的name设成了特殊的PART_ContentHost,这个是rtb的宿主,rtb会在里面生成自己的visual tree,然后事件都会顺着层次结构bubble到这个容器中。
      

  4.   

    好,谢谢
    怪不午那个我调协 为Text的话不显示内容