Установите значок UWP NavigationViewItem из кода позади

Я хочу иметь возможность динамически добавлять NavigationViewItems в свое приложение UWP, но не могу понять, как установить значки.

NavigationViewItem.Icon в XAML имеет формат: Icon="Page", что похоже на использование перечисления Symbol. За исключением того, что C # говорит, что это IconElement объект

Я хочу написать что-то вроде этого:

NavigationViewItem navItem = new NavigationViewItem();
navItem.Icon = Symbol.Page;
navView.MenuItems.Add(navItem)

Компилятор выдает ошибку в Symbol.Page, потому что это не IconElement, есть ли способ преобразовать его в IconElement?


person Ben    schedule 26.01.2019    source источник


Ответы (1)


Синтаксис XAML в этом случае создает IconElement автоматически при компиляции XAML. Когда вы делаете это из кода, вам нужно создавать его вручную. Существует класс SymbolIcon, который наследует из IconElement, который делает то же самое в код. Также проверьте документацию для IconElement производных классов, чтобы увидеть все возможные типы значков.

Вот и фиксированный код:

NavigationViewItem navItem = new NavigationViewItem();
navItem.Icon = new SymbolIcon(Symbol.Page);
navView.MenuItems.Add(navItem);
person AlesD    schedule 27.01.2019