2016-06-01 5 views
2

styleが設定されており、自分のプログラムで使用するすべてのrectangleを色づけしたいと考えています。素敵でシンプルですが、このように見えます。長方形のスタイルをDataGridに適用しないようにする

<Style TargetType="Rectangle"> 
    <Setter Property="Fill" Value="LightBlue"/> 
</Style> 

私は、ユーザが矢印キーを使用してrowsてナビゲートするとき、私のDataGrids最近という点で、セル内のテキストが、それはこのようになり、消されることになるの全てではいくつかの奇妙な行動に気づきました。

あなたは非常に明確になくなってテキストを(つまり、両方の画像で同じセルです)見ることができるようにARROWKEYSが

enter image description here

を押して、AFTER

enter image description here

、BEFORE。私は最終的にこれを見て回り、rectangleスタイルがそれぞれDataGridCellに適用されているという結論に達しました。私は、wpfDataGridCellrecanglesを使用しているからです。

このスタイルは、ツールボックスから取り出したrectanglesにのみ適用でき、rectanglesDataGridにはありませんか?

styleを完全に個別に削除するのは簡単な選択ですが、色分けをさらに下に変更すると非常に時間がかかることがあります。私も(可能ならば)私は好きです私のDataGridCell外観を変更すると接続詞で任意の修正プログラムを使用したいと思います

を更新し

。そのビジュアルツリー内の四角形を持って

<Style TargetType="DataGridCell"> 
    <Style.Triggers> 
     <Trigger Property="IsSelected" Value="True"> 
      <Setter Property="Background" Value="Orange" /> 
      <Setter Property="BorderBrush" Value="Black" /> 
     </Trigger> 
    </Style.Triggers> 
</Style> 

答えて

2

DataGridCells使用FocusVisualStyle。これらの矩形は、デフォルトのRectangleスタイルからFillブラシを取得します。あなたはFocusVisualStyle変更した場合は、すでにDataGridCellのデフォルトスタイルがある場合、細胞は、キーボードの選択

<DataGrid.CellStyle> 
    <Style TargetType="{x:Type DataGridCell}"> 
     <Setter Property="FocusVisualStyle" Value="{x:Null}"/> 
    </Style> 
</DataGrid.CellStyle> 

に見えるようになり、そこ

<Style TargetType="DataGridCell"> 
    <Setter Property="FocusVisualStyle" Value="{x:Null}"/> 
    <Style.Triggers> 
     <Trigger Property="IsSelected" Value="True"> 
      <Setter Property="Background" Value="Orange" /> 
      <Setter Property="BorderBrush" Value="Red" /> 
     </Trigger> 
    </Style.Triggers> 
</Style> 


セッター追加情報を追加します。私は同じ問題を持つがあります Buttonsと選択を使用して Tab

+0

こんにちは、私の質問を更新しました。あなたの修正はテキストを保持するように機能しますが(私が期待するように)、 'DataGridCell'に適用したいスタイルを削除します。両方を行うことができる方法はありますか? – CBreeze

+0

@CBreeze、私の編集を参照してください – ASh

+0

古い(ish)スレッドを呼び出すためのお詫びですが、今は 'DataGrid.Focus()'のようなときに 'DataGrid'全体がLightBlueで埋められています。私は再び、DataGrid内で矩形が何とか使用されていると想定していますが、これを防ぐ方法はありますか?また、あなたの答えに述べたように、私は 'Buttons 'をタブで移動するときにもこの問題を抱えています。あなたはどのように 'Button'問題を回避することができましたか? – CBreeze

関連する問題