0

Wie ändert man NSTable ausgewählte Zeile Hintergrundfarbe?Ändern der Markierungsfarbe von NSTableView ausgewählte Zeile

hier ist gut answer, aber es ist für eine gute Sicht.

Vorerst was ich sehe, ist, dass ich hilight Stil ausgewählt ändern können:

MyTAble.SelectionHighlightStyle = NSTableViewSelectionHighlightStyle.Regular; 

Aber hier ist nur 3 Optionen;

None = -1L, 
     Regular, 
     SourceList 

Ich habe folgende Lösung versucht:

patientListDelegate.SelectionChanged += (o, e) => { 
         var r = PatientTableView.SelectedRow; 
         var v = PatientTableView.GetRowView (r, false); 
         v.Emphasized = false; 
        }; 

Es funktioniert normal, aber wenn ich minimieren und dann wieder offene Anwendung, zeigt noch blaue Farbe

Antwort

0

ich Antwort in Objective-C gefunden

Change selection color on view-based NSTableView

Hier ist C# implementieren entation:

innen Delegierten:

public override NSTableRowView CoreGetRowView (NSTableView tableView, nint row) 
     { 
      var rowView = tableView.MakeView ("row", this); 
      if (rowView == null) { 
       rowView = new PatientTableRow(); 
       rowView.Identifier = "row"; 
      } 
      return rowView as NSTableRowView; 
     } 

und benutzerdefinierte Reihe:

public class PatientTableRow : NSTableRowView 
    { 
     public override void DrawSelection (CGRect dirtyRect) 
     { 
      if (SelectionHighlightStyle != NSTableViewSelectionHighlightStyle.None) { 

       NSColor.FromCalibratedWhite (0.65f, 1.0f).SetStroke(); 
       NSColor.FromCalibratedWhite (0.82f, 1.0f).SetFill(); 

       var selectionPath = NSBezierPath.FromRoundedRect (dirtyRect, 0, 0); 

       selectionPath.Fill(); 
       selectionPath.Stroke(); 
      } 
     } 
    } 
Verwandte Themen