XAML 如何在WPF中的按钮内容中为单个字符加下划线?

i2loujxw  于 2023-08-01  发布在  其他
关注(0)|答案(2)|浏览(181)

我在我的WPF窗口中有一些按钮,我想在按钮内容中的某些字符加下划线。
我试过使用“_”(如“My_Content”)来为C下划线,但直到用户按Alt键或更改其本地设置时才会出现。在< Underline >Content属性中使用时,当我试图仅对部分内容加下划线时会导致错误,如:
Content=“我< Underline >的内容< /Underline >”。
如果可能的话,我更喜欢在XAML中设置它。如果你能帮忙的话,我会很感激的。
谢谢!

hi3rlvi2

hi3rlvi21#

你必须像这样显式地这样做:

<Button>
    <Button.Content>
        <TextBlock>
            My <Underline>C</Underline>ontent
        </TextBlock>
    </Button.Content>
</Button>

字符串
这将删除使用Alt+Char单击按钮的功能。为此,使用AccessText元素。但它不支持TextBlock的标记语法。

92dk7w1h

92dk7w1h2#

如果添加了绑定,则可以使用Alt+Char保留单击按钮的功能。在我的例子中,我使用Alt+X退出(关闭)当前窗口

public class RelayCommand : ICommand
{
    private readonly Action _execute;

    public event EventHandler CanExecuteChanged;

    public RelayCommand(Action execute)
    {
        _execute = execute;
    }

    public bool CanExecute(object parameter)
    {
        return true;
    }

    public void Execute(object parameter)
    {
        _execute?.Invoke();
    }
}
public partial class Window : Window
{

    public ICommand ExitCommand { get; }
    public Window()
    {
        InitializeComponent();

        ExitCommand = new RelayCommand(ExitApplication);
        CommandBindings.Add(new CommandBinding(ExitCommand, ExecuteExitCommand, CanExecuteExitCommand));

        KeyGesture exitKeyGesture = new KeyGesture(Key.X, ModifierKeys.Alt);
        InputBindings.Add(new KeyBinding(ExitCommand, exitKeyGesture));

    }
    private void ExecuteExitCommand(object sender, ExecutedRoutedEventArgs e)
    {
        ExitApplication();
    }
    private void CanExecuteExitCommand(object sender, CanExecuteRoutedEventArgs e)
    {
        e.CanExecute = true;
    }
    private void ExitApplication()
    {
        Close();
    }
    private void exitbutton_Click(object sender, RoutedEventArgs e)
    {
        ExitApplication();
    }
}

字符串
确保您也使用System.Windows.Input进行初始化;

相关问题