Изменить цвет задней панели ListView и установить границу - PullRequest
0 голосов
/ 05 мая 2020

Я создаю TabItem динамически в коде программной части. На вкладке я создаю Grid и добавляю метку, слайдер и список:

Grid grid = new Grid();

RowDefinition gridRow1 = new RowDefinition();
RowDefinition gridRow2 = new RowDefinition();
ColumnDefinition gridCol1 = new ColumnDefinition();
ColumnDefinition gridCol2 = new ColumnDefinition();
ColumnDefinition gridCol3 = new ColumnDefinition();

ToggleButton tbtn = new ToggleButton();
Label lbl = new Label();

// Grid style
grid.ShowGridLines = true;
grid.RowDefinitions.Add(gridRow1);
grid.RowDefinitions.Add(gridRow2);
grid.ColumnDefinitions.Add(gridCol1);
grid.ColumnDefinitions.Add(gridCol2);
grid.ColumnDefinitions.Add(gridCol3);

gridRow1.Height = new GridLength(50);
gridCol1.Width = new GridLength(70);
gridCol2.Width = new GridLength(50);

У меня есть функция для создания ListView:

private void SetListViewStyle(ListView listView, Thickness thickness, Dictionary<string, string> MyItems)
{
    GridView gridView = new GridView();

    // Create grid
    gridView.Columns.Add(new GridViewColumn
    {
        //Header = "Key",
        DisplayMemberBinding = new Binding("Key")
    });

    gridView.Columns.Add(new GridViewColumn
    {
        //Header = "Value",
        DisplayMemberBinding = new Binding("Value")
    });

    listView.Margin = thickness;
    listView.Padding = new Thickness(2);
    listView.ItemContainerStyle = Application.Current.FindResource("ItemContStyle") as Style;
    listView.DragEnter += OnListViewDragEnter;
    listView.Drop += OnListViewDrop;
    listView.BorderThickness = new Thickness(10);

    foreach (KeyValuePair<string, string> item in MyItems)
    {
        Items.Add(new MyListViewItem { Key = item.Key, Value = item.Value });
    }

    listView.View = gridView;
    listView.ItemsSource = Items;
}

I вызовите функцию следующим образом:

// ListView left
SetListViewStyle(listView: lvLeft, thickness: new Thickness(20, 0, 0, 0), MyItems: LeftItems);

// ListView right    
SetListViewStyle(listView: lvRight, thickness: new Thickness(20, 0, 0, 0), MyItems: RightItems);

И добавление дочерних элементов в сетку:

Grid.SetRow(lbl, 0);
Grid.SetColumn(lbl, 0);
Grid.SetRow(tbtn, 0);

Grid.SetColumn(lvLeft, 0);
Grid.SetRow(lvLeft, 1);
Grid.SetColumnSpan(lvLeft, 2);
Grid.SetColumn(lvRight, 3);
Grid.SetRow(lvRight, 1);

// Add children to grid
grid.Children.Add(lbl);
grid.Children.Add(tbtn);
grid.Children.Add(lvLeft);
grid.Children.Add(lvRight);

Вопрос в том, как я могу установить задний цвет и границу для просмотра списка?

Примеры:

С цветом фона границы
Без цвета фона границы

Я тестировал listview.Background = Brushes.LightGray;, но цвет нэка не отображается!

Я использую http://materialdesigninxaml.net/ Я думаю, что это проблема. Я должен переопределить значение фона gehe. Но я не знаю как.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...