Подтвердить что ты не робот

Как добавить команду в WPF TextBlock?

Я хотел бы иметь возможность щелкнуть текстовый блок и запустить его. Это возможно? (если не я просто как-то сделаю прозрачную кнопку над чем-то?)

4b9b3361

Ответ 1

Вы можете использовать InputBinding.

<TextBlock Text="Hello">
    <TextBlock.InputBindings>
        <MouseBinding Command="" MouseAction="LeftClick" />
    </TextBlock.InputBindings>
</TextBlock>

Изменить: возможно, стоит упомянуть гиперссылку.

<TextBlock><Hyperlink Command="" TextDecorations="None" Foreground="Black">Hello</Hyperlink></TextBlock>

Ответ 2

Вы не делаете прозрачную кнопку над ней, вы вставляете в нее TextBlock:

<Button>
    <Button.Template>
        <ControlTemplate TargetType="Button">
            <ContentPresenter />
        </ControlTemplate>
    </Button.Template>
    <TextBlock Text="Lorem Ipsum"/>
</Button>

Ответ 3

Ну, кнопка будет потреблять ваш клик, и щелчок не пойдет дальше на ваш TextBlock. Если вам это не нужно, это будет один из способов сделать это. Вы можете изменить текстовый блок ControlTemplate и добавить кнопку, предоставив кнопке новый ControlTemplate с прозрачным RectangleT. Лучше всего было бы использовать способ подключения команд к событиям типа EventBehavior и помещать его в событие OnMouseLeftButtonDown.