#xaml #listview #microsoft-metro #controltemplate
#xaml #listview #microsoft-metro #controltemplate
Вопрос:
Я пытаюсь переопределить свойство заполнения ListViewItemPresenter в приложениях магазина Windows. Все работает, когда я копирую полный общий стиль ListView, изменяю заполнение и применяю этот стиль как ItemContainerStyle к моему ListView.
Теперь мне нужно сделать это для другого ListView. Как я могу переопределить только одно свойство ControlTemplate ListViewItemPresenter, не копируя весь стиль заново?
Ответ №1:
Лучшее решение, которое я нашел, пришло по ссылке ниже. Я скопировал вставленный ответ ниже.
Идея состоит в том, чтобы скопировать полный стиль Windows 10 в свой словарь и присвоить ему ключ. Вам не нужно изменять стиль, и вам нужно скопировать его только один раз. (Хотя на один раз больше, чем в идеале, вам нужно.) Поскольку теперь у него есть ключ, вы можете создать другой стиль, «основанный» на этом ключе, и изменить его.
Сначала создайте стиль по умолчанию для элемента управления в вашем словаре ресурсов на уровне App.xaml, но присвойте ему x:Key
<Style x:Key="ButtonDefaultStyle" TargetType="Button">
...
</Style>
Затем создайте другой стиль, который наследуется от этого стиля.
<Style x:Key="MyButtonStyle" TargetType="Button" BasedOn="{StaticResource ButtonDefaultStyle}" />
</Style>
Стили по умолчанию можно найти здесь
[https://msdn.microsoft.com/en-us/library/windows/apps/mt299122.aspx ]
или на вашем компьютере в таком месте, как
C:Program Files (x86) Windows Kits 10 DesignTime CommonConfiguration Neutral UAP 10.0.10586.0Genericgeneric.xaml