TextBlock中的HyperLinkBut​​ton

时间:2015-01-24 13:55:51

标签: c# xaml hyperlink inline

我有以下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>

问题是我收到了这个错误:

  

错误1找不到Windows运行时类型   &#39; Windows.UI.Xaml.Controls.RelativeSource&#39;

如何将hyperLinkBut​​ton放入我的段落?

我尝试过ReachTextBlock,但我不想要选择文字。

希望得到帮助,谢谢

1 个答案:

答案 0 :(得分:1)

我不理解错误消息,但我能够重现它和其他错误消息(它们因我尝试不同的事情而变化......最持久的错误消息实际上是对ButtonBase的抱怨无法找到班级。

我对他们没有很好的解释;似乎至少XAML编译器中有关于发出有用的错误消息的错误。我想您尝试编写的代码有问题,但a)不要立即看到它可能是什么,以及b)XAML编译器应该给您一个可操作的错误消息,而不是抱怨它无法找到项目参考中明确存在的类型。

所有这一切,你可以在没有InlineUIContainer类的情况下实现你想要的东西(我假设你从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()方法的方法签名。 E.g:

private void RedirectToRegister(
    Windows.UI.Xaml.Documents.Hyperlink sender,
    Windows.UI.Xaml.Documents.HyperlinkClickEventArgs args)