Skip to content

Commit

Permalink
[SplitButton] Add missing SplitButton disabled state and resource bin…
Browse files Browse the repository at this point in the history
…dings (#6138)

* Add missing splitbutton disabled state and resource bindings

* Fix colors

* Fix border brushes
  • Loading branch information
marcelwgn authored Oct 26, 2021
1 parent f8616d4 commit 3373245
Show file tree
Hide file tree
Showing 6 changed files with 58 additions and 12 deletions.
5 changes: 4 additions & 1 deletion dev/SplitButton/SplitButton.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,10 @@ void SplitButton::UpdateVisualStates(bool useTransitions)
// change visual state
auto primaryButton = m_primaryButton.get();
auto secondaryButton = m_secondaryButton.get();
if (primaryButton && secondaryButton)
if (!IsEnabled()) {
winrt::VisualStateManager::GoToState(*this, L"Disabled", useTransitions);
}
else if (primaryButton && secondaryButton)
{
if (m_isFlyoutOpen)
{
Expand Down
25 changes: 18 additions & 7 deletions dev/SplitButton/SplitButton.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,8 @@
<VisualState x:Name="Disabled">
<VisualState.Setters>
<Setter Target="ContentPresenter.Foreground" Value="{ThemeResource SplitButtonForegroundDisabled}"/>
<Setter Target="RootGrid.Background" Value="{ThemeResource SplitButtonBackgroundDisabled}"/>
<Setter Target="ContentPresenter.BorderBrush" Value="Transparent"/>
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
Expand Down Expand Up @@ -92,6 +94,15 @@
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal"/>

<VisualState x:Name="Disabled">
<VisualState.Setters>
<Setter Target="Border.BorderBrush" Value="{ThemeResource SplitButtonBorderBrushDisabled}"/>
<Setter Target="PrimaryBackgroundGrid.Background" Value="Transparent"/>
<Setter Target="SecondaryBackgroundGrid.Background" Value="Transparent"/>
<Setter Target="RootGrid.Background" Value="Transparent"/>
</VisualState.Setters>
</VisualState>

<VisualState x:Name="FlyoutOpen">
<VisualState.Setters>
<Setter Target="PrimaryBackgroundGrid.Background" Value="{ThemeResource SplitButtonBackgroundPressed}"/>
Expand Down Expand Up @@ -253,13 +264,7 @@
<Grid x:Name="SecondaryBackgroundGrid"
Background="{TemplateBinding Background}"
Grid.Column="2"/>

<Grid x:Name="Border"
Grid.ColumnSpan="3"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
contract7Present:CornerRadius="{TemplateBinding CornerRadius}"/>


<Button x:Name="PrimaryButton"
Grid.Column="0"
Foreground="{TemplateBinding Foreground}"
Expand Down Expand Up @@ -307,6 +312,12 @@
</local:AnimatedIcon>
</Button.Content>
</Button>

<Grid x:Name="Border"
Grid.ColumnSpan="3"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
contract7Present:CornerRadius="{TemplateBinding CornerRadius}"/>
</Grid>
</ControlTemplate>
</Setter.Value>
Expand Down
11 changes: 11 additions & 0 deletions dev/SplitButton/SplitButton_rs1.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,8 @@
<VisualState x:Name="Disabled">
<VisualState.Setters>
<Setter Target="ContentPresenter.Foreground" Value="{ThemeResource SplitButtonForegroundDisabled}"/>
<Setter Target="RootGrid.Background" Value="{ThemeResource SplitButtonBackgroundDisabled}"/>
<Setter Target="ContentPresenter.BorderBrush" Value="Transparent"/>
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
Expand All @@ -81,6 +83,15 @@
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal"/>

<VisualState x:Name="Disabled">
<VisualState.Setters>
<Setter Target="Border.BorderBrush" Value="{ThemeResource SplitButtonBorderBrushDisabled}"/>
<Setter Target="PrimaryBackgroundGrid.Background" Value="Transparent"/>
<Setter Target="SecondaryBackgroundGrid.Background" Value="Transparent"/>
<Setter Target="RootGrid.Background" Value="Transparent"/>
</VisualState.Setters>
</VisualState>

<VisualState x:Name="FlyoutOpen">
<VisualState.Setters>
<Setter Target="PrimaryBackgroundGrid.Background" Value="{ThemeResource SplitButtonBackgroundPressed}"/>
Expand Down
7 changes: 7 additions & 0 deletions dev/SplitButton/SplitButton_rs1_v1.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@
<VisualState x:Name="Disabled">
<VisualState.Setters>
<Setter Target="ContentPresenter.Foreground" Value="{ThemeResource SplitButtonForegroundDisabled}"/>
<Setter Target="RootGrid.Background" Value="{ThemeResource SplitButtonForegroundDisabled}"/>
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
Expand All @@ -81,6 +82,12 @@
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal"/>

<VisualState x:Name="Disabled">
<VisualState.Setters>
<Setter Target="Border.BorderBrush" Value="{ThemeResource SplitButtonBorderBrushDisabled}"/>
</VisualState.Setters>
</VisualState>

<VisualState x:Name="FlyoutOpen">
<VisualState.Setters>
<Setter Target="PrimaryBackgroundGrid.Background" Value="{ThemeResource SplitButtonBackgroundPressed}"/>
Expand Down
15 changes: 11 additions & 4 deletions dev/SplitButton/SplitButton_themeresources.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
<StaticResource x:Key="SplitButtonBorderBrush" ResourceKey="ControlElevationBorderBrush" />
<StaticResource x:Key="SplitButtonBorderBrushPointerOver" ResourceKey="ControlElevationBorderBrush" />
<StaticResource x:Key="SplitButtonBorderBrushPressed" ResourceKey="ControlElevationBorderBrush" />
<StaticResource x:Key="SplitButtonBorderBrushDisabled" ResourceKey="ControlElevationBorderBrush" />
<StaticResource x:Key="SplitButtonBorderBrushDisabled" ResourceKey="ControlStrokeColorDefaultBrush" />
<StaticResource x:Key="SplitButtonBorderBrushDivider" ResourceKey="ControlStrokeColorDefaultBrush" />
<StaticResource x:Key="SplitButtonBorderBrushChecked" ResourceKey="AccentControlElevationBorderBrush" />
<StaticResource x:Key="SplitButtonBorderBrushCheckedPointerOver" ResourceKey="AccentControlElevationBorderBrush" />
Expand Down Expand Up @@ -70,7 +70,7 @@
<StaticResource x:Key="SplitButtonBorderBrush" ResourceKey="ControlElevationBorderBrush" />
<StaticResource x:Key="SplitButtonBorderBrushPointerOver" ResourceKey="ControlElevationBorderBrush" />
<StaticResource x:Key="SplitButtonBorderBrushPressed" ResourceKey="ControlElevationBorderBrush" />
<StaticResource x:Key="SplitButtonBorderBrushDisabled" ResourceKey="ControlElevationBorderBrush" />
<StaticResource x:Key="SplitButtonBorderBrushDisabled" ResourceKey="ControlStrokeColorDefaultBrush" />
<StaticResource x:Key="SplitButtonBorderBrushDivider" ResourceKey="ControlStrokeColorDefaultBrush" />
<StaticResource x:Key="SplitButtonBorderBrushChecked" ResourceKey="AccentControlElevationBorderBrush" />
<StaticResource x:Key="SplitButtonBorderBrushCheckedPointerOver" ResourceKey="AccentControlElevationBorderBrush" />
Expand Down Expand Up @@ -106,8 +106,8 @@
<StaticResource x:Key="SplitButtonBorderBrush" ResourceKey="SystemControlForegroundTransparentBrush" />
<StaticResource x:Key="SplitButtonBorderBrushPointerOver" ResourceKey="SystemColorHighlightColorBrush" />
<StaticResource x:Key="SplitButtonBorderBrushPressed" ResourceKey="SystemColorButtonTextColorBrush" />
<StaticResource x:Key="SplitButtonBorderBrushDisabled" ResourceKey="SystemColorGrayTextColorBrush" />
<StaticResource x:Key="SplitButtonBorderBrushDivider" ResourceKey="SystemControlForegroundTransparentBrush" />
<StaticResource x:Key="SplitButtonBorderBrushDisabled" ResourceKey="SystemControlDisabledTransparentBrush" />
<StaticResource x:Key="SplitButtonBorderBrushDivider" ResourceKey="SystemControlDisabledBaseMediumLowBrush" />
<StaticResource x:Key="SplitButtonBorderBrushChecked" ResourceKey="SystemColorButtonTextColorBrush" />
<StaticResource x:Key="SplitButtonBorderBrushCheckedPointerOver" ResourceKey="SystemColorButtonTextColorBrush" />
<StaticResource x:Key="SplitButtonBorderBrushCheckedPressed" ResourceKey="SystemColorButtonFaceColorBrush" />
Expand Down Expand Up @@ -168,6 +168,7 @@
<VisualState x:Name="Disabled">
<VisualState.Setters>
<Setter Target="ContentPresenter.Foreground" Value="{ThemeResource AppBarButtonForegroundDisabled}"/>
<Setter Target="RootGrid.Background" Value="{ThemeResource AppBarButtonBackgroundDisabled}"/>
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
Expand All @@ -194,6 +195,12 @@
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal"/>

<VisualState x:Name="Disabled">
<VisualState.Setters>
<Setter Target="Border.BorderBrush" Value="{ThemeResource AppBarButtonBorderBrushDisabled}"/>
</VisualState.Setters>
</VisualState>

<VisualState x:Name="FlyoutOpen">
<VisualState.Setters>
<Setter Target="PrimaryBackgroundGrid.Background" Value="{ThemeResource AppBarButtonBackgroundPressed}"/>
Expand Down
7 changes: 7 additions & 0 deletions dev/SplitButton/SplitButton_v1.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@
<VisualState x:Name="Disabled">
<VisualState.Setters>
<Setter Target="ContentPresenter.Foreground" Value="{ThemeResource SplitButtonForegroundDisabled}"/>
<Setter Target="RootGrid.Background" Value="{ThemeResource SplitButtonBackgroundDisabled}"/>
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
Expand All @@ -81,6 +82,12 @@
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal"/>

<VisualState x:Name="Disabled">
<VisualState.Setters>
<Setter Target="Border.BorderBrush" Value="{ThemeResource SplitButtonBorderBrushDisabled}"/>
</VisualState.Setters>
</VisualState>

<VisualState x:Name="FlyoutOpen">
<VisualState.Setters>
<Setter Target="PrimaryBackgroundGrid.Background" Value="{ThemeResource SplitButtonBackgroundPressed}"/>
Expand Down

0 comments on commit 3373245

Please sign in to comment.