Я создаю 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. Но я не знаю как.