WPF按钮内的内容聚焦于标签

时间:2018-01-02 11:29:10

标签: c# wpf

当我们通过键盘标签操作应用程序时,按钮内的内容"下一步"也正在获得标签。

    <StackPanel Orientation="Horizontal" Grid.Row="0" Grid.Column="1"
                HorizontalAlignment="Right" VerticalAlignment="Bottom">
        <Button Name="HideWelcomePageButton"
                Visibility="{Binding Path=HideWelcomePageButton.IsVisible, Converter={StaticResource BoolToVisibilityConverter}}"
                IsEnabled="{Binding Path=HideWelcomePageButton.IsEnabled}" MinWidth="100"
                Command="{Binding Path=HideWelcomePageButton.ButtonCommand}" Margin="30 0 0 0"
                Content="Next">
        </Button>
    </StackPanel>

enter image description here

是否有任何设置可以禁用内部按钮内容的焦点和制表位。它应该只在按钮上。

2 个答案:

答案 0 :(得分:1)

要使按钮可聚焦而不是其中的文本,您不能设置默认的Content属性值并在Button XAML标记内设置Label / TextBlock,并将其声明为不可聚焦。< / p>

<Button Name="HideWelcomePageButton"
            Visibility="{Binding Path=HideWelcomePageButton.IsVisible, 
            Converter={StaticResource BoolToVisibilityConverter}}"
            IsEnabled="{Binding Path=HideWelcomePageButton.IsEnabled}" 
            MinWidth="100"
            Command="{Binding Path=HideWelcomePageButton.ButtonCommand}" 
            Margin="30 0 0 0">
<Label Focusable="false">Next</Label>
</Button>

另一方面,如果您只想禁用按钮文字焦点的边框,请添加属性:

FocusVisualStyle="{x:Null}"到您的按钮控件。

要重新启用它,请将该属性设置为您选择的样式。

Source

答案 1 :(得分:1)

我通过添加属性 KeyboardNavigation.TabNavigation =“无”解决了这个问题,如下所示

<Button KeyboardNavigation.TabNavigation ="None" Content="{Binding NoButtonText}">

通过进行此更改,只有按钮会关注标签,而不是按钮内的文本。