2011-10-27 29 views
0

Silverlight 4ではDataGridDataGridTextColumnがあります。この列のセルは編集可能です。今私は、白のデフォルトの黒ではなく、黒で全体のグリッドの色を白に変更したという問題があります。私は編集モードの間にセルのテキストの色であるを除き、すべての関連する色を変更することができました。これはまだ黒いので、かなり悪く見えます。Silverlight DataGridで編集モードでセルのテキストの色を変更する方法は?

どのようなヒント?私は今、多くの時間をグーグルで過ごしてこの問題を探し求めましたが、解決策は見つかりませんでした。前もって感謝します!

答えて

0

DataGridCellの背景を変更すると、DataGridTextColumnのTextBoxの背景が透明になるため、セルの背景を取得する必要があります。

<UserControl xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk" 
     x:Class="DataGridTextBoxBackground.MainPage" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
     xmlns:p="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data" 
     mc:Ignorable="d" 
     d:DesignHeight="300" d:DesignWidth="400"> 

<Grid x:Name="LayoutRoot" Background="White"> 
    <Grid.Resources> 
     <Style TargetType="p:DataGridCell"> 
      <Setter Property="Background" Value="Black" /> 
      <Setter Property="Foreground" Value="White" /> 
     </Style> 
    </Grid.Resources> 
    <sdk:DataGrid x:Name="gridItems" AutoGenerateColumns="False"> 
     <sdk:DataGrid.Columns> 
      <sdk:DataGridTextColumn Binding="{Binding Name}" Header="Name" /> 
     </sdk:DataGrid.Columns> 
    </sdk:DataGrid> 
</Grid> 

ここでは上記のXAMLのための分離コードです:

namespace DataGridTextBoxBackground 
{ 
    public partial class MainPage : UserControl 
    { 
     public MainPage() 
     { 
      InitializeComponent(); 
      this.Loaded += new RoutedEventHandler(MainPage_Loaded); 
     } 

     void MainPage_Loaded(object sender, RoutedEventArgs e) 
     { 
      List<DataItem> items = new List<DataItem>(); 
      items.Add(new DataItem("item 1")); 
      items.Add(new DataItem("item 2")); 
      items.Add(new DataItem("item 3")); 
      items.Add(new DataItem("item 4")); 
      items.Add(new DataItem("item 5")); 

      this.gridItems.ItemsSource = items; 
     } 
    } 

    public class DataItem 
    { 
     public DataItem() { } 

     public DataItem(string name) 
     { 
      Name = name; 
     } 
     public string Name { get; set; } 
    } 
} 
+0

申し訳ありませんが、それは動作しませんが、ここで

は私のために働いたものです。セルの前景色を変更しますが、**編集モード**では、セルのテキストが選択されていないときは、前景色はまだ黒です。 – Tobias

+0

どこかに競合するスタイルがあるかもしれません。あなたはテーマを使用しているのですか、それとも自分ですべてをスタイリングしていますか? –

関連する問題