Вы не можете добавить гиперссылку на StackPanel - вы получите ошибку во время выполнения. (На самом деле, я немного удивлен, что это не ошибка во время компиляции.) Это потому, что Hyperlink не живет на стороне «элементов управления» WPF с <Button>
и <StackPanel>
и другими вещами, которые размещены на прямоугольных чанках. экрана и спуск с UIElement
. Вместо этого он живет в «текстовой» части вещей, с <Bold>
и <Run>
и <Paragraph>
и другими, как правило, текстовыми вещами, которые переносятся по словам и текут в строках и абзацах и спускаются с TextElement
.
Как только вы понимаете, что есть две отдельные иерархии классов с различным поведением макета, становится разумным, что гиперссылка будет на «текстовой» стороне вещей (например, легко иметь абзац с гиперссылкой в середине, и даже для этой гиперссылки для переноса через разрыв строки).
Но нет, это не так заметно, когда вы начинаете.
Чтобы смешать два мира и использовать гиперссылку в качестве элемента управления, все, что вам нужно сделать, это поместить его в TextBlock. TextBlock - это элемент управления (то есть может входить в StackPanel), который содержит элементы текста (то есть может содержать гиперссылку):
<TextBlock><Hyperlink Click="buttonClose_Click">Close</Hyperlink></TextBlock>