Публикуя это вместе с GitHub, возможно, кто-то здесь сталкивался с той же проблемой. Я пробовал сегодня с различными вариантами, но не смог заставить это работать.
Я установил MahApps.Metro из самородка. После этого я также установил MahApps.Metro.Resources. Это создало папку с именем resources в моем проекте. Я использую файл icons.xaml в своих ресурсах окна. Я использовал некоторые значки на кнопках своего пользовательского элемента управления (встроенного в главное окно в элементе управления содержимым). Но когда запускаю иконки не появляются. виден только серый кружок.
Я открыл icons.xaml и увидел свойство Fill, где Fill={DynamicResource BlackBrush} содержит ошибку. Если я изменю заливку на Fill="Black", я смогу увидеть значки. Но если акцент темный, это создает проблему, поскольку цвет значков не меняется динамически.
Основываясь на отзывах в GitHub, я попытался создать небольшой образец WPF. Я добавил самородок Mahapps.metro и Mahapps.metro.resources. Я создал окно, перекодировал все MahApps.Metro xaml с ресурсами xaml. Затем я добавил в проект пользовательский элемент управления с теми же ответами. В пользовательском элементе управления я добавил кнопку, а также добавил кнопку в окне. Когда я запускаю образец, я не вижу никаких значков (как в окне, так и под управлением пользователя)
Когда я сравниваю с демонстрационным приложением, я не вижу никакой разницы, кроме того, что в демо у вас есть отдельная библиотека классов для icons.xaml.
Ниже мой код.
Главное окно:
<Window x:Class="TestApp.Demo.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:Controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
xmlns:local="clr-namespace:TestApp.Demo"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Fonts.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colors.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/Blue.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseLight.xaml" />
<!--<ResourceDictionary Source="pack://application:,,,/TestApp.Demo;component/Resources/Icons.xaml" />-->
<ResourceDictionary Source="/Resources/Icons.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Window.Resources>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Button Grid.Row="0" Width="50"
Height="50"
Style="{DynamicResource MetroCircleButtonStyle}">
<Rectangle Width="20"
Height="20"
Fill="{Binding Path=Foreground, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Button}}}">
<Rectangle.OpacityMask>
<VisualBrush Stretch="Fill"
Visual="{DynamicResource appbar_city}" />
</Rectangle.OpacityMask>
</Rectangle>
</Button>
<local:UCTest Grid.Row="1"/>
</Grid>
</Window>
Ниже приведен код управления пользователем:
<UserControl x:Class="TestApp.Demo.UCTest"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:Controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Fonts.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colors.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/Blue.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseLight.xaml" />
<ResourceDictionary Source="pack://application:,,,/TestApp.Demo;component/Resources/Icons.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</UserControl.Resources>
<Grid>
<Grid>
<Button Width="50"
Height="50"
Style="{DynamicResource MetroCircleButtonStyle}">
<Rectangle Width="20"
Height="20"
Fill="{Binding Path=Foreground, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Button}}}">
<Rectangle.OpacityMask>
<VisualBrush Stretch="Fill"
Visual="{DynamicResource appbar_city}" />
</Rectangle.OpacityMask>
</Rectangle>
</Button>
</Grid>
</Grid>
</UserControl>
Я что-то упустил здесь? • Гирия