【问题标题】:HyperLinkButton in TextBlockTextBlock 中的超链接按钮
【发布时间】:2015-01-24 13:55:51
【问题描述】:

我有以下 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 运行时类型 'Windows.UI.Xaml.Controls.RelativeSource'。

如何将 hyperLinkBut​​ton 放在段落中?

我尝试了 ReachTextBlock,但我不想选择文本。

希望得到帮助,谢谢

【问题讨论】:

    标签: c# xaml hyperlink inline


    【解决方案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() 方法的方法签名。例如:

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

    【讨论】:

    • 非常感谢!
    猜你喜欢
    • 2017-03-29
    • 2011-10-15
    • 1970-01-01
    • 1970-01-01
    • 2011-08-22
    • 1970-01-01
    • 2020-12-04
    相关资源
    最近更新 更多