Я хотел бы иметь возможность щелкнуть текстовый блок и запустить его. Это возможно? (если не я просто как-то сделаю прозрачную кнопку над чем-то?)
Как добавить команду в WPF TextBlock?
Ответ 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
.