Проблема с выделением выбора в Windows.UI WinUI GridViewC#

Место общения программистов C#
Ответить
Anonymous
 Проблема с выделением выбора в Windows.UI WinUI GridView

Сообщение Anonymous »

Я попробовал несколько подходов к выделению выделения для выбора в WinUI Gridview (включая использование Border в GridView.ItemTemplate DataTemplate и Border в GridView.ItemContainerStyle ControlTemplate, но пока безуспешно. Вот файлы XAML и .cs, которые я создал в качестве теста, демонстрирующие мою текущую попытку с использованием изменений VisualState в тестовом приложении, отображающем палитру из 256 цветов. Чего я хочу предназначен для выделения цвета при выборе цвета. В настоящее время при выборе цвета не происходит никаких визуальных изменений. Спасибо!












































using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Controls;
using Microsoft.UI.Xaml.Media;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using Windows.UI;

namespace Test2
{
public class ColorItem
{
public SolidColorBrush Brush { get; }
public string Hex { get; }

public ColorItem(Color color)
{
Brush = new SolidColorBrush(color);
Hex = $"#{color.A:X2}{color.R:X2}{color.G:X2}{color.B:X2}";
}
}

public class ColorsViewModel
{
public ColorsViewModel()
{
Colors = new ObservableCollection();
}

public ObservableCollection Colors { get; set; }
}

///
/// An empty window that can be used on its own or navigated to within a Frame.
///
public sealed partial class MainWindow : Window
{
public ColorsViewModel ColorsModel { get; } = new ColorsViewModel();

public MainWindow()
{
InitializeComponent();
InitColors();
// WinUI `Window` does not have a DataContext property. Set DataContext on the root content element instead.
if (this.Content is FrameworkElement root)
{
root.DataContext = ColorsModel;
}
}
public void InitColors()
{
for (int i = 0; i < 256; i++)
{
int red = 255 - i;
int green = (2 * i + 64) % 256;
int blue = (384 - i) % 256;
ColorsModel.Colors.Add(new ColorItem(new Color() { A = 255, R = (byte)red, G = (byte)green, B = (byte)blue }));
}
}

private void PaletteColors_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
}
}
}


Подробнее здесь: https://stackoverflow.com/questions/798 ... i-gridview
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»