TextBlock 中的 HyperLinkButton
HyperLinkButton in TextBlock
我有以下 XAML 代码:
<TextBlock
FontFamily="Segoe UI Light"
TextWrapping="Wrap" Grid.Row="0"
Margin="12" TextAlignment="Center"
SelectionHighlightColor="#FF1D1334"
FontWeight="Light" Foreground="#FF755CB0">
<Span FontSize="40" >Welcome!</Span><LineBreak/><LineBreak/>
<Span FontSize="25"> login</Span>
<LineBreak/>
click here
<InlineUIContainer>
<HyperlinkButton
Foreground="#FF4017A0"
Click="RedirectToRegister">HERE!</HyperlinkButton>
</InlineUIContainer>
</TextBlock>
问题是我遇到了这个错误:
Error 1 Could not find Windows Runtime type
'Windows.UI.Xaml.Controls.RelativeSource'.
如何将 hyperLinkButton 放入段落中?
我尝试了 ReachTextBlock,但我不希望文本被选中。
求助,谢谢
我不明白错误消息,但我能够重现它和其他错误消息(它们随着我尝试不同的东西而变化……最持久的错误消息实际上是 ButtonBase
class 找不到)。
我对他们没有很好的解释;似乎至少 XAML 编译器中存在关于发出 有用 错误消息的错误。我想您尝试编写的代码有问题,但是 a) 不能立即看出可能是什么,并且 b) XAML 编译器应该给您一个可操作的错误消息,而不是抱怨它不能'找不到在您的项目引用中明确存在的类型。
综上所述,您可以在没有 InlineUIContainer
class 的情况下实现您想要的效果(我想您是从 WPF 那里继承了该技术?)。以下代码应该适合您:
<TextBlock
FontFamily="Segoe UI Light"
TextWrapping="Wrap" Grid.Row="0"
Margin="12" TextAlignment="Center"
SelectionHighlightColor="#FF1D1334"
FontWeight="Light" Foreground="#FF755CB0">
<Span FontSize="40" >Welcome!</Span><LineBreak/><LineBreak/>
<Span FontSize="25"> login</Span>
<LineBreak/>
click here
<Hyperlink Click="RedirectToRegister" Foreground="#FF4017A0">HERE!</Hyperlink>
</TextBlock>
请注意,您可能还想调整 RedirectToRegister()
方法的方法签名。例如:
private void RedirectToRegister(
Windows.UI.Xaml.Documents.Hyperlink sender,
Windows.UI.Xaml.Documents.HyperlinkClickEventArgs args)
我有以下 XAML 代码:
<TextBlock
FontFamily="Segoe UI Light"
TextWrapping="Wrap" Grid.Row="0"
Margin="12" TextAlignment="Center"
SelectionHighlightColor="#FF1D1334"
FontWeight="Light" Foreground="#FF755CB0">
<Span FontSize="40" >Welcome!</Span><LineBreak/><LineBreak/>
<Span FontSize="25"> login</Span>
<LineBreak/>
click here
<InlineUIContainer>
<HyperlinkButton
Foreground="#FF4017A0"
Click="RedirectToRegister">HERE!</HyperlinkButton>
</InlineUIContainer>
</TextBlock>
问题是我遇到了这个错误:
Error 1 Could not find Windows Runtime type 'Windows.UI.Xaml.Controls.RelativeSource'.
如何将 hyperLinkButton 放入段落中?
我尝试了 ReachTextBlock,但我不希望文本被选中。
求助,谢谢
我不明白错误消息,但我能够重现它和其他错误消息(它们随着我尝试不同的东西而变化……最持久的错误消息实际上是 ButtonBase
class 找不到)。
我对他们没有很好的解释;似乎至少 XAML 编译器中存在关于发出 有用 错误消息的错误。我想您尝试编写的代码有问题,但是 a) 不能立即看出可能是什么,并且 b) XAML 编译器应该给您一个可操作的错误消息,而不是抱怨它不能'找不到在您的项目引用中明确存在的类型。
综上所述,您可以在没有 InlineUIContainer
class 的情况下实现您想要的效果(我想您是从 WPF 那里继承了该技术?)。以下代码应该适合您:
<TextBlock
FontFamily="Segoe UI Light"
TextWrapping="Wrap" Grid.Row="0"
Margin="12" TextAlignment="Center"
SelectionHighlightColor="#FF1D1334"
FontWeight="Light" Foreground="#FF755CB0">
<Span FontSize="40" >Welcome!</Span><LineBreak/><LineBreak/>
<Span FontSize="25"> login</Span>
<LineBreak/>
click here
<Hyperlink Click="RedirectToRegister" Foreground="#FF4017A0">HERE!</Hyperlink>
</TextBlock>
请注意,您可能还想调整 RedirectToRegister()
方法的方法签名。例如:
private void RedirectToRegister(
Windows.UI.Xaml.Documents.Hyperlink sender,
Windows.UI.Xaml.Documents.HyperlinkClickEventArgs args)