Czekam na ustawienie tła kolumny w GridView WPF. Wiele wyników Google wskazuje na ustawienie GridViewColumn.CellTemplate w celu zmiany wyglądu kolumny. Jednak podczas ustawiania koloru tła napotykam problem; to nie rozciąga się wypełnić komórkę:Ustawianie tła kolumn w WPF ListView/Gridview
Oto XAML Pracuję z:
<Window x:Class="ScratchPadWpf.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Width="300" Height="300">
<Grid>
<ListView ItemsSource="{Binding}">
<ListView.View>
<GridView>
<GridViewColumn>
<GridViewColumn.CellTemplate>
<DataTemplate>
<Grid Background="Red">
<TextBlock Text="{Binding FirstName}"/>
</Grid>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn>
<GridViewColumn.CellTemplate>
<DataTemplate>
<Grid Background="Yellow">
<TextBlock Text="{Binding LastName}"/>
</Grid>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
</Grid>
</Window>
a xaml.cs na dokładkę:
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
DataContext = new[]
{
new {FirstName = "Jim", LastName = "Bob"},
new {FirstName = "Frank", LastName = "Smith"},
new {FirstName = "Tooth", LastName = "Paste"},
};
}
}
Setting Szerokość i wysokość siatki DataTemplate, która jest większa niż komórka z marginesem ujemnym, może dać wynik zbliżony, ale jeśli zmienisz rozmiar kolumny, problem ponownie się wyświetli.
<Grid Background="Yellow" Height="22" Width="50" Margin="-6">
Czy istnieje sposób, aby wypełnić komórkę z kolorem?
Dzięki temu nie trzeba ustawiać szerokości. Jednak nadal istnieje luka między dwiema kolumnami. Jakikolwiek sposób to zamknąć? – statenjason
Niestety, GridViewRowPresenter zakodowane na sztywno marża do 6,0,6,0. Obawiam się, że byłoby to dość pracochłonne. –
Hacky rozwiązaniem jest ustawienie marginesu siatki zawierającej -6,0, -6,0. –