Как добавить команду в текстовый блок WPF?
Я хотел бы иметь возможность щелкнуть текстовый блок и запустить команду. Это возможно? (если нет, я просто как-то делаю над ним прозрачную кнопку или что-то еще?)
3 ответа:
можно использовать InputBinding.
<TextBlock Text="Hello"> <TextBlock.InputBindings> <MouseBinding Command="" MouseAction="LeftClick" /> </TextBlock.InputBindings> </TextBlock>
Edit: гиперссылка, вероятно, тоже стоит упомянуть.
<TextBlock><Hyperlink Command="" TextDecorations="None" Foreground="Black">Hello</Hyperlink></TextBlock>
вы не делаете прозрачную кнопку над ним, вы ставите TextBlock на это:
<Button> <Button.Template> <ControlTemplate TargetType="Button"> <ContentPresenter /> </ControlTemplate> </Button.Template> <TextBlock Text="Lorem Ipsum"/> </Button>
Ну кнопка будет потреблять ваш щелчок, и щелчок не будет идти дальше к вашему
TextBlock
. Если вам это не нужно, это был бы один из способов сделать это. Вы можете изменить textblock ControlTemplate и добавить кнопку, предоставив кнопке новую ControlTemplate с прозрачным прямоугольником. Более приятным решением было бы использовать способ подключения команд к таким событиям, как EventBehavior и поставить его наOnMouseLeftButtonDown
событие.