aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/SideChains/MaterialDesignInXamlToolkit-master/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.ValidationErrorTemplate.xaml
blob: 7add53422c187b10b6c3d38cb589ba3633d0ac40 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                    xmlns:wpf="clr-namespace:MaterialDesignThemes.Wpf"
                    xmlns:controlzEx="clr-namespace:ControlzEx">
    <BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" />

    <ControlTemplate x:Key="MaterialDesignValidationErrorTemplate">
        <ControlTemplate.Resources>
            <DataTemplate DataType="{x:Type ValidationError}">
                <TextBlock Foreground="{DynamicResource ValidationErrorBrush}"
                           FontSize="10"
                           MaxWidth="{Binding ElementName=Placeholder, Path=ActualWidth}"
                           HorizontalAlignment="Left"
                           Margin="2"
                           TextWrapping="Wrap"
                           Text="{Binding ErrorContent}"
                           UseLayoutRounding="false" />
            </DataTemplate>
        </ControlTemplate.Resources>
        <StackPanel>
            <AdornedElementPlaceholder Name="Placeholder" />
            <Border Name="DefaultErrorViewer"
                    Visibility="Collapsed"
                    Background="{DynamicResource MaterialDesignPaper}">
                <TextBlock Foreground="{DynamicResource ValidationErrorBrush}"
                           FontSize="10"
                           MaxWidth="{Binding ElementName=Placeholder, Path=ActualWidth}"
                           HorizontalAlignment="Left"
                           Margin="0 2"
                           TextWrapping="Wrap"
                           Text="{Binding CurrentItem.ErrorContent}"
                           UseLayoutRounding="false" />
            </Border>
            <controlzEx:PopupEx x:Name="ValidationPopup"
                                IsOpen="False"
                                Placement="Bottom"
                                PlacementTarget="{Binding ElementName=Placeholder, Mode=OneWay}"
                                AllowsTransparency="True">
                <Border Background="{DynamicResource MaterialDesignPaper}">
                    <TextBlock Foreground="{DynamicResource ValidationErrorBrush}"
                               FontSize="10"
                               HorizontalAlignment="Left"
                               Margin="0 2"
                               TextWrapping="Wrap"
                               Text="{Binding CurrentItem.ErrorContent}"
                               UseLayoutRounding="false" />
                </Border>
            </controlzEx:PopupEx>
        </StackPanel>
        <ControlTemplate.Triggers>
            <MultiDataTrigger>
                <MultiDataTrigger.Conditions>
                    <Condition Binding="{Binding ElementName=Placeholder, Path=AdornedElement.(wpf:ValidationAssist.OnlyShowOnFocus)}" Value="False"/>
                    <Condition Binding="{Binding ElementName=Placeholder, Path=AdornedElement.(wpf:ValidationAssist.UsePopup)}" Value="True"/>
                    <Condition Binding="{Binding ElementName=Placeholder, Path=AdornedElement.(wpf:ValidationAssist.Suppress)}" Value="False"/>
                </MultiDataTrigger.Conditions>
                <MultiDataTrigger.Setters>
                    <Setter TargetName="ValidationPopup" Property="IsOpen" Value="True"/>
                </MultiDataTrigger.Setters>
            </MultiDataTrigger>

            <MultiDataTrigger>
                <MultiDataTrigger.Conditions>
                    <Condition Binding="{Binding ElementName=Placeholder, Path=AdornedElement.(wpf:ValidationAssist.OnlyShowOnFocus)}" Value="False"/>
                    <Condition Binding="{Binding ElementName=Placeholder, Path=AdornedElement.(wpf:ValidationAssist.UsePopup)}" Value="False"/>
                    <Condition Binding="{Binding ElementName=Placeholder, Path=AdornedElement.(wpf:ValidationAssist.Suppress)}" Value="False"/>
                </MultiDataTrigger.Conditions>
                <MultiDataTrigger.Setters>
                    <Setter TargetName="DefaultErrorViewer" Property="Visibility" Value="Visible"/>
                </MultiDataTrigger.Setters>
            </MultiDataTrigger>

            <MultiDataTrigger>
                <MultiDataTrigger.Conditions>
                    <Condition Binding="{Binding ElementName=Placeholder, Path=AdornedElement.(wpf:ValidationAssist.OnlyShowOnFocus)}" Value="True"/>
                    <Condition Binding="{Binding ElementName=Placeholder, Path=AdornedElement.(wpf:ValidationAssist.UsePopup)}" Value="True"/>
                </MultiDataTrigger.Conditions>
                <MultiDataTrigger.Setters>
                    <Setter TargetName="ValidationPopup" Property="IsOpen"
                            Value="{Binding ElementName=Placeholder, Path=AdornedElement.IsKeyboardFocusWithin, Mode=OneWay}"/>
                </MultiDataTrigger.Setters>
            </MultiDataTrigger>

            <MultiDataTrigger>
                <MultiDataTrigger.Conditions>
                    <Condition Binding="{Binding ElementName=Placeholder, Path=AdornedElement.(wpf:ValidationAssist.OnlyShowOnFocus)}" Value="True"/>
                    <Condition Binding="{Binding ElementName=Placeholder, Path=AdornedElement.(wpf:ValidationAssist.UsePopup)}" Value="False"/>
                </MultiDataTrigger.Conditions>
                <MultiDataTrigger.Setters>
                    <Setter TargetName="DefaultErrorViewer" Property="Visibility"
                            Value="{Binding ElementName=Placeholder, Path=AdornedElement.IsKeyboardFocusWithin, Mode=OneWay, Converter={StaticResource BooleanToVisibilityConverter}}"/>
                </MultiDataTrigger.Setters>
            </MultiDataTrigger>
        </ControlTemplate.Triggers>
    </ControlTemplate>
</ResourceDictionary>