У меня следующий XAML в моем элементе управления WPF:
App.Xaml
<Application x:Class="MyWPFApp"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:miscellaneous="clr-namespace:MyWPFApp.Miscellaneous"
Startup="OnAppStart">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<materialDesign:CustomColorTheme BaseTheme="Light" PrimaryColor="#FF0080FF" SecondaryColor="White" />
<ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Defaults.xaml" />
<ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/materialdesigntheme.Flipper.xaml" />
<ResourceDictionary Source="Converters/Converters.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
Это отображает текстовое поле без ошибки проверки ниже, когда я запускаю приложение и введите что-нибудь в текстовое поле:
XAML 1
<Grid>
<TextBox
Style="{StaticResource MaterialDesignFloatingHintTextBox}"
VerticalAlignment="Center"
md:TextFieldAssist.HasClearButton="True"
md:HintAssist.Hint="Email Address"
md:HintAssist.HelperText="{Binding ErrorContent}">
<TextBox.Text>
<Binding
UpdateSourceTrigger="PropertyChanged"
ValidatesOnNotifyDataErrors="True">
<Binding.Path>Email</Binding.Path>
</Binding>
</TextBox.Text>
</TextBox>
</Grid>
But when I changed the XAML as follows (Grid enclosed in a MaterialDesign.DialogHost element):
XAML 2
Эл. адрес
Рендеринг - именно то, что я ожидал:
Текстовое поле с ошибкой под ним
Мой вопрос: не должно быть рендеринга, как на рисунке. 2 с XAML 1?