2010-08-03 14 views
6

के अंदर स्टाइलिंग हाइपरलिंक DataGrid में कॉलम में से एक TextBlock में Hyperlink शामिल है। जब एक पंक्ति का चयन किया जाता है, हाइपरलिंक नीले रंग के रूप में नीले रंग के रूप में दिखाता है, इसलिए मैं इसे अपने टेक्स्ट रंग को सफेद में बदलना चाहता हूं। मैं उसे कैसे कर सकता हूँ?टेक्स्टब्लॉक

DataGrid इस तरह दिखता है:

<DataGrid> 
    <DataGrid.Columns> 
     <DataGridTemplateColumn Header="Title"> 
      <DataGridTemplateColumn.CellTemplate> 
       <DataTemplate> 
        <TextBlock TextWrapping="Wrap"> 
         <Hyperlink NavigateUri="{Binding Url}"> 
          <Run Text="{Binding Title}" /> 
         </Hyperlink> 
        </TextBlock> 
       </DataTemplate> 
      </DataGridTemplateColumn.CellTemplate> 
     </DataGridTemplateColumn> 
    </DataGrid.Columns> 
</DataGrid> 

मैं

<Style TargetType="DataGridCell"> 
    <Style.Triggers> 
     <Trigger Property="IsSelected" Value="True"> 
      <Setter Property="TextBlock.Foreground" Value="White" /> 
     </Trigger> 
    </Style.Triggers> 
</Style> 

की कोशिश की है और TextElement बजाय TextBlock के साथ एक ही कोड। दोनों अन्य कॉलम के लिए काम करते हैं, लेकिन इस के लिए हाइपरलिंक के साथ नहीं।

उत्तर

2

लिंक के लिए निम्नलिखित घोषणा का उपयोग करें:

<Run Text="{Binding Title}" Foreground="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=DataGridCell},Path=Foreground}"/> 
+0

यह हाइपरलिंक जब चयनित बनाता है सही रंग, लेकिन यह भी यह काला बनाता है जब चयनित नहीं और मुझे लगता है कि नहीं करना चाहती। – svick

+0

अपनी आवश्यकताओं को पूरा करने के लिए अपनी शैली बढ़ाएं – HCL

+0

हे, यह मेरे लिए नहीं हुआ था। हाँ यह अब काम करता है, धन्यवाद। मैं अभी भी उत्सुक हूं कि ऐसा करने का एक बेहतर तरीका है, हालांकि। – svick

संबंधित मुद्दे