#c# #wpf #material-design #material-design-in-xaml
#c# #wpf #material-design #material-design-in-xaml
Вопрос:
Я пытаюсь сделать ColorZone
в WPF, используя библиотеку MaterialDesign. Но когда я устанавливаю
materialDesign:ShadowAssist.ShadowDepth="Depth5"
он не показывает никакой тени. Ниже приведен полный код примера приложения, в котором он не работает. Кто-нибудь может сказать мне, что я делаю не так?
-
Я добавил
MaterialDesignThemes
в проект. -
В
app.xaml
вставке это:
<Application
x:Class="TestShadow.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:TestShadow"
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
StartupUri="MainWindow.xaml">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<materialDesign:BundledTheme
BaseTheme="Light"
PrimaryColor="DeepPurple"
SecondaryColor="Lime" />
<ResourceDictionary
Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Defaults.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
</Application>
- И
MainWindow.xaml
я добавил:
<Window
x:Class="TestShadow.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:TestShadow"
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
mc:Ignorable="d"
Title="MainWindow"
Height="450"
Width="800">
<Grid>
<materialDesign:ColorZone
Mode="PrimaryDark"
Padding="16"
materialDesign:ShadowAssist.ShadowDepth="Depth5">
<TextBlock
Text="Material Design In XAML Toolkit"
VerticalAlignment="Center" />
</materialDesign:ColorZone>
</Grid>
</Window>
Результат, тени нет:
Комментарии:
1. Какую версию Material Design вы используете?
2. Темы MaterialDesign —
3.2.0
. MaterialDesignColors —1.2.7
3. Тень находится за пределами цветовой зоны, поэтому вы можете попытаться добавить поле в цветовую зону, чтобы проверить, не скрыто ли оно другим содержимым. Margin =»5″ должно быть достаточно. Если это сработает, попробуйте поместить цветовую зону на первый план, чтобы убедиться, что тень находится над другим содержимым
4. @XimazeC Я добавил поле, но я все еще не вижу никакой тени. Единственный способ, который я нашел для этого, — использовать Card и установить Radius в
0
5. У меня также возникла эта проблема, она работает в предыдущем проекте, но сейчас ее нет.
Ответ №1:
По-видимому, есть какая-то проблема для текущей версии MaterialDesign. Единственный способ, который я нашел, это поместить элемент Card под ColorZone. В этом случае тень становится видимой.