2016-12-17 289 views
0

我用这个代码,找出一个文本范围FlowDirection款的FlowDirection属性(WPF):我怎样才能

var d=TextRange.GetPropertyValue(Paragraph.FlowDirectionProperty).ToString(); 
rtlBtn.IsChecked= d=="RightToLeft"; 

但它返回LeftToRight始终,即使是从右到左段落

哪有我那样做?

回答

1

但它总是返回LeftToRight,即使是从右到左段落

不,它不会如下面的示例演示:

<RichTextBox x:Name="rtb"> 
     <FlowDocument> 
      <Paragraph FlowDirection="RightToLeft"> 
       <TextBlock>right to left...</TextBlock> 
      </Paragraph> 
      <Paragraph FlowDirection="LeftToRight"> 
       <TextBlock>right to left...</TextBlock> 
      </Paragraph> 
     </FlowDocument> 
    </RichTextBox> 

    <CheckBox x:Name="rtlBtn" /> 
    <Button Content="Click" Click="Button_Click" /> 

private void Button_Click(object sender, RoutedEventArgs e) 
    { 
     var textRange = rtb.Selection; 
     if(textRange != null) 
     { 
      var d = textRange.GetPropertyValue(Paragraph.FlowDirectionProperty).ToString(); 
      rtlBtn.IsChecked = d == "RightToLeft"; 
     } 
    } 

您需要确保TextRange属于您所期望的段落,并且此Reallu的属性设置为RightToLeft。