Skip to content

Commit bdde277

Browse files
corvinszKeboo
andauthored
Fix White rectangle when disabling Calendar (#3935)
* Remove white rectangle from Template and apply visual state to gray out CalendarDayButton * Make test mor resilient by only caring about IsExpanded on items with children. * set Opacity of the Year TextBlock when Calendar is disabled --------- Co-authored-by: Kevin Bost <kitokeboo@gmail.com>
1 parent e5d0c3d commit bdde277

File tree

5 files changed

+27
-35
lines changed

5 files changed

+27
-35
lines changed

src/MainDemo.Wpf/Pickers.xaml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -441,7 +441,7 @@
441441
Margin="0 0 0 8" />
442442

443443
<smtx:XamlDisplay UniqueKey="calendar_1">
444-
<Calendar />
444+
<Calendar IsEnabled="{Binding DataContext.ControlsEnabled, RelativeSource={RelativeSource FindAncestor, AncestorType=Window}}" />
445445
</smtx:XamlDisplay>
446446
</StackPanel>
447447

@@ -470,6 +470,7 @@
470470
</Grid.Resources>
471471
<Calendar materialDesign:CalendarAssist.HeaderBackground="{DynamicResource PrimaryHueDarkBrush}"
472472
materialDesign:CalendarAssist.HeaderForeground="{DynamicResource PrimaryHueDarkForegroundBrush}"
473+
IsEnabled="{Binding DataContext.ControlsEnabled, RelativeSource={RelativeSource FindAncestor, AncestorType=Window}}"
473474
Background="{DynamicResource PrimaryHueLightBrush}"
474475
CalendarButtonStyle="{StaticResource SecondaryCalendarButton}"
475476
CalendarDayButtonStyle="{StaticResource SecondaryCalendarDayButton}"
@@ -502,6 +503,7 @@
502503
</Style>
503504
</Grid.Resources>
504505
<Calendar materialDesign:CalendarAssist.HeaderBackground="#A2E9FF"
506+
IsEnabled="{Binding DataContext.ControlsEnabled, RelativeSource={RelativeSource FindAncestor, AncestorType=Window}}"
505507
materialDesign:CalendarAssist.HeaderForeground="Black"
506508
Background="#343C3F"
507509
CalendarButtonStyle="{StaticResource CustomCalendarButton}"
@@ -515,7 +517,7 @@
515517
<TextBlock Text="Horizontal"
516518
Margin=" 0 0 0 8" />
517519
<smtx:XamlDisplay UniqueKey="calendar_4">
518-
<Calendar materialDesign:CalendarAssist.Orientation="Horizontal" />
520+
<Calendar materialDesign:CalendarAssist.Orientation="Horizontal" IsEnabled="{Binding DataContext.ControlsEnabled, RelativeSource={RelativeSource FindAncestor, AncestorType=Window}}" />
519521
</smtx:XamlDisplay>
520522
</StackPanel>
521523

@@ -524,6 +526,7 @@
524526
Margin="0 0 0 8" />
525527
<smtx:XamlDisplay UniqueKey="calendar_5">
526528
<Calendar materialDesign:ElevationAssist.Elevation="Dp8"
529+
IsEnabled="{Binding DataContext.ControlsEnabled, RelativeSource={RelativeSource FindAncestor, AncestorType=Window}}"
527530
Style="{StaticResource MaterialDesignCalendarPortraitForeground}" />
528531
</smtx:XamlDisplay>
529532
</StackPanel>

src/MaterialDesign3.Demo.Wpf/Pickers.xaml

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -341,7 +341,9 @@
341341
</Grid.RowDefinitions>
342342

343343
<StackPanel Grid.Row="0" Orientation="Horizontal">
344-
<Calendar x:Name="CombinedCalendar" Margin="-1,-4,-1,0" />
344+
<Calendar x:Name="CombinedCalendar"
345+
Margin="-1,-4,-1,0"
346+
IsEnabled="{Binding DataContext.ControlsEnabled, RelativeSource={RelativeSource FindAncestor, AncestorType=Window}}" />
345347

346348
<materialDesign:Clock x:Name="CombinedClock"
347349
DisplayAutomation="CycleWithSeconds"
@@ -378,7 +380,7 @@
378380
Header="Default"
379381
Style="{StaticResource MaterialDesignCardGroupBox}">
380382
<smtx:XamlDisplay UniqueKey="calendar_1">
381-
<Calendar />
383+
<Calendar IsEnabled="{Binding DataContext.ControlsEnabled, RelativeSource={RelativeSource FindAncestor, AncestorType=Window}}" />
382384
</smtx:XamlDisplay>
383385
</GroupBox>
384386

@@ -405,6 +407,7 @@
405407
</Grid.Resources>
406408
<Calendar materialDesign:CalendarAssist.HeaderBackground="{DynamicResource MaterialDesign.Brush.Primary.Dark}"
407409
materialDesign:CalendarAssist.HeaderForeground="{DynamicResource MaterialDesign.Brush.Primary.Dark.Foreground}"
410+
IsEnabled="{Binding DataContext.ControlsEnabled, RelativeSource={RelativeSource FindAncestor, AncestorType=Window}}"
408411
Background="{DynamicResource MaterialDesign.Brush.Primary.Light}"
409412
CalendarButtonStyle="{StaticResource SecondaryCalendarButton}"
410413
CalendarDayButtonStyle="{StaticResource SecondaryCalendarDayButton}"
@@ -436,6 +439,7 @@
436439
</Grid.Resources>
437440
<Calendar materialDesign:CalendarAssist.HeaderBackground="#A2E9FF"
438441
materialDesign:CalendarAssist.HeaderForeground="Black"
442+
IsEnabled="{Binding DataContext.ControlsEnabled, RelativeSource={RelativeSource FindAncestor, AncestorType=Window}}"
439443
Background="#343C3F"
440444
CalendarButtonStyle="{StaticResource CustomCalendarButton}"
441445
CalendarDayButtonStyle="{StaticResource CustomCalendarDayButton}"
@@ -451,7 +455,7 @@
451455
Header="Horizontal"
452456
Style="{StaticResource MaterialDesignCardGroupBox}">
453457
<smtx:XamlDisplay UniqueKey="calendar_4">
454-
<Calendar materialDesign:CalendarAssist.Orientation="Horizontal" />
458+
<Calendar materialDesign:CalendarAssist.Orientation="Horizontal" IsEnabled="{Binding DataContext.ControlsEnabled, RelativeSource={RelativeSource FindAncestor, AncestorType=Window}}" />
455459
</smtx:XamlDisplay>
456460
</GroupBox>
457461

@@ -463,7 +467,9 @@
463467
Header="Transparent Header and shadow"
464468
Style="{StaticResource MaterialDesignCardGroupBox}">
465469
<smtx:XamlDisplay UniqueKey="calendar_5">
466-
<Calendar materialDesign:ElevationAssist.Elevation="Dp8" Style="{StaticResource MaterialDesignCalendarPortraitForeground}" />
470+
<Calendar materialDesign:ElevationAssist.Elevation="Dp8"
471+
Style="{StaticResource MaterialDesignCalendarPortraitForeground}"
472+
IsEnabled="{Binding DataContext.ControlsEnabled, RelativeSource={RelativeSource FindAncestor, AncestorType=Window}}" />
467473
</smtx:XamlDisplay>
468474
</GroupBox>
469475

src/MaterialDesignThemes.Wpf/Themes/Generic.xaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -328,7 +328,7 @@
328328
</Trigger>
329329
<Trigger Property="IsEnabled" Value="False">
330330
<Setter TargetName="ComponentOneTwoWrapper" Property="Opacity" Value=".56" />
331-
<Setter TargetName="ComponentThreeTextBlock" Property="Opacity" Value="1" />
331+
<Setter TargetName="ComponentThreeTextBlock" Property="Opacity" Value=".56" />
332332
</Trigger>
333333
<Trigger Property="local:CalendarAssist.Orientation" Value="Horizontal">
334334
<Setter TargetName="ComponentOneTwoWrapper" Property="Orientation" Value="Vertical" />

src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.Calendar.xaml

Lines changed: 7 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,13 @@
176176
<VisualTransition GeneratedDuration="0:0:0.1" />
177177
</VisualStateGroup.Transitions>
178178
<VisualState x:Name="Normal" />
179+
<VisualState x:Name="Disabled">
180+
<Storyboard>
181+
<DoubleAnimation Storyboard.TargetProperty="Opacity"
182+
To=".56"
183+
Duration="0" />
184+
</Storyboard>
185+
</VisualState>
179186
<VisualState x:Name="MouseOver">
180187
<Storyboard>
181188
<DoubleAnimation Storyboard.TargetName="HighlightingBorder"
@@ -349,23 +356,6 @@
349356
</ControlTemplate.Resources>
350357

351358
<Grid x:Name="PART_Root">
352-
<Grid.Resources>
353-
<SolidColorBrush x:Key="DisabledColor" Color="#A5FFFFFF" />
354-
</Grid.Resources>
355-
<VisualStateManager.VisualStateGroups>
356-
<VisualStateGroup x:Name="CommonStates">
357-
<VisualState x:Name="Normal" />
358-
<VisualState x:Name="Disabled">
359-
<Storyboard>
360-
<DoubleAnimation Storyboard.TargetName="PART_DisabledVisual"
361-
Storyboard.TargetProperty="Opacity"
362-
To="1"
363-
Duration="0" />
364-
</Storyboard>
365-
</VisualState>
366-
</VisualStateGroup>
367-
</VisualStateManager.VisualStateGroups>
368-
369359
<wpf:Card Padding="0,-1,0,0"
370360
wpf:ElevationAssist.Elevation="{TemplateBinding wpf:ElevationAssist.Elevation}"
371361
Background="{TemplateBinding Background}"
@@ -607,18 +597,8 @@
607597
</Grid>
608598
</Grid>
609599
</wpf:Card>
610-
<Rectangle x:Name="PART_DisabledVisual"
611-
Fill="white"
612-
Opacity="0.5"
613-
RadiusX="2"
614-
RadiusY="2"
615-
Stretch="Fill"
616-
Visibility="Collapsed" />
617600
</Grid>
618601
<ControlTemplate.Triggers>
619-
<Trigger Property="IsEnabled" Value="False">
620-
<Setter TargetName="PART_DisabledVisual" Property="Visibility" Value="Visible" />
621-
</Trigger>
622602
<DataTrigger Binding="{Binding DisplayMode, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Calendar}}, FallbackValue={x:Static controls:CalendarMode.Month}}" Value="Year">
623603
<Setter TargetName="MonthViewWrapperGrid" Property="Visibility" Value="Hidden" />
624604
<Setter TargetName="YearViewWrapperGrid" Property="Visibility" Value="Visible" />

tests/MaterialDesignThemes.UITests/WPF/TreeListViews/TreeListViewTests.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1026,7 +1026,10 @@ await Wait.For(async () =>
10261026
{
10271027
IVisualElement<TreeListViewItem> treeItem = await treeListView.GetElement<TreeListViewItem>($"/TreeListViewItem[{index}]");
10281028
await Assert.That(await treeItem.GetContentText()).IsEqualTo(content);
1029-
await Assert.That(await treeItem.GetIsExpanded()).IsEqualTo(isExpanded);
1029+
if (await treeItem.GetHasItems())
1030+
{
1031+
await Assert.That(await treeItem.GetIsExpanded()).IsEqualTo(isExpanded);
1032+
}
10301033
});
10311034
}
10321035

0 commit comments

Comments
 (0)