AppBarButton isEnabled = false但启用了显示按钮

时间:2017-11-16 11:33:58

标签: c# xaml uwp

我有一个带有两个按钮的命令栏,第一个是启用和可见的,第二个是禁用的,不可见,点击第一个,我查看第二个。 当第二个背面可见时,无法单击,但可以在视觉上启用。

代码:

      <CommandBar Background="Transparent" DefaultLabelPosition="Right" IsDynamicOverflowEnabled="True">
        <CommandBar.Content>
            <TextBlock Margin="10,0,0,0" Style="{StaticResource HeaderTextBlockStyle}"
                    FontSize="40"
                    Text="Command Bar"/>
        </CommandBar.Content>
        <CommandBar.PrimaryCommands>
            <AppBarButton  ToolTipService.ToolTip="Layout" Click="AppBarButton_Click" Style="{StaticResource AppBarButtonRevealStyle}" Label="Layout">
                <AppBarButton.Content>
                    <FontIcon FontFamily="Segoe MDL2 Assets" Glyph="&#xE81E;" />
                </AppBarButton.Content>
            </AppBarButton>
            <AppBarButton x:Name="la1" IsEnabled="False" Visibility="Collapsed"  ToolTipService.ToolTip="Layout" Style="{StaticResource AppBarButtonRevealStyle}" Label="Layout">
                <AppBarButton.Content>
                    <FontIcon FontFamily="Segoe MDL2 Assets" Glyph="&#xE81E;" />
                </AppBarButton.Content>
            </AppBarButton>
        </CommandBar.PrimaryCommands>

private void AppBarButton_Click(object sender, RoutedEventArgs e)
    {
        la1.Visibility = Visibility.Visible;
    }

这是截图,两者都可见,第一次启用,第二次禁用,但按钮显示都已启用。

enter image description here

我不想启用它。问题是按钮的图形,按钮没有启用但按钮的UI表示按钮已启用

1 个答案:

答案 0 :(得分:0)

好的,据我了解你想要这个

private void AppBarButton_Click(object sender, RoutedEventArgs e)
{
    la1.Visibility = Visibility.Visible;
    if(la1.IsEnabled == false)
    {
        la1.Foreground = (SolidColorBrush)Application.Current.Resources["AppBarButtonForegroundDisabled"];
    }
}

Output

或者,您可以使用Blend创建自己的样式。