2016-09-12 8 views
0

は次のとおりです。セットBOLDに「FontWeightProperty」

<ToggleButton x:Name="TbtnBold" HorizontalAlignment="Right" Height="24" Margin="0,84,318,0" VerticalAlignment="Top" Width="24" Click="ToggleButton_Click"> 
     <Image RenderOptions.BitmapScalingMode="Fant" Source="Pics/Icons/bold.png" Width="15" Height="15"/> 
     </ToggleButton> 

と私は "のためにVSにこのコードを書きましたToggleButton_Click」イベント:

if (TbtnBold.IsChecked == true) 
      { 
       if (richTxtBoxQ.Selection.GetPropertyValue(Run.FontWeightProperty) is FontWeight && ((FontWeight)richTxtBoxQ.Selection.GetPropertyValue(Run.FontWeightProperty)) == FontWeights.Normal) 
        richTxtBoxQ.Selection.ApplyPropertyValue(Run.FontWeightProperty, FontWeights.Bold); 
       else 
        richTxtBoxQ.Selection.ApplyPropertyValue(Run.FontWeightProperty, FontWeights.Normal); 
      if (TbtnBold.IsChecked == false)              
      { 
       if (richTxtBoxQ.Selection.GetPropertyValue(Run.FontWeightProperty) is FontWeight && ((FontWeight)richTxtBoxQ.Selection.GetPropertyValue(Run.FontWeightProperty)) == FontWeights.Bold) 
        richTxtBoxQ.Selection.ApplyPropertyValue(Run.FontWeightProperty, FontWeights.Normal); 
       else 
        richTxtBoxQ.Selection.ApplyPropertyValue(Run.FontWeightProperty, FontWeights.Bold); 
      } 

と、このユーザーがクリックしたテキストのフォントの太さが何であるかに応じて、リッチテキストボックスのどこかにトグルボタンの変更をクリックしたときのためには、次のとおりです。

private void richTxtBoxQ_SelectionChanged(object sender, RoutedEventArgs e) 
    { 
     if (richTxtBoxQ.Selection.GetPropertyValue(Run.FontWeightProperty) is FontWeight && ((FontWeight)richTxtBoxQ.Selection.GetPropertyValue(Run.FontWeightProperty)) == FontWeights.Normal) 
     { 
      TbtnBold.IsChecked = false; 
     } 
     else 
     { 
      TbtnBold.IsChecked = true; 
     } 
    } 

すべてのことがうまく動作する太字の選択テキストと行の最後に挿入ポイントがありますが、テキストの途中にカッターの位置を変更して挿入ボタンを変更すると、すべてのテキストが太字になります。 長い時間を検索しましたが、答えがないと、他のテキストを変更せずに挿入ポイントのフォント太さを太字にすることができます。

答えて

0

キャレットを持つ作品だけが変更されないと思いますどのように働くことが意図されているか。

テキスト装飾を適用する前にif(richTxtBoxQ.Selection.IsEmpty)をチェックすると、問題を取り除くことができます。

+0

答えていただきありがとうございます。何百回もデバッグしていますが、テキストをクリックしてボタンをクリックすると、コードが実行されます(トップクリックのイベントコードは何もありません)、すべてのテキストは太字になります –

+0

上記のチェックはうまくいきますか? – Muds

+0

はい私はそれを使用し、選択は空です... –

関連する問題