繁体   English   中英

Windows Phone 8.0中使用C#的TextBlock中的超链接

[英]Hyperlinks in TextBlock in windows phone 8.0 using C#

如何使用C#从文本框中写入文本到Windows Phone 8.0中的文本块生成超链接

例如:-我进入

在文本框中输入www.google.com,并在单击按钮后单击按钮

结果应该是

www.google.com
在文本块中具有超链接

您可以轻松地将超 链接放入RichTextBlock (在WP8.1 Runtime中 )。 我还将Run置于超链接中,以便更轻松地管理其内容。 例:

<StackPanel>
  <TextBox Name="myTextBox" Width="200"/>
  <RichTextBlock TextWrapping="Wrap" VerticalAlignment="Center" TextAlignment="Center">
    <Paragraph>
        <Run Text="This is a link to google:"/>
        <LineBreak/>
        <Hyperlink x:Name="myhyperlink" Click="myhyperlink_Click">
            <Run x:Name="hyperText" Text="textInside"/>
        </Hyperlink>
        <LineBreak/>
        <Run Text="you can click it to invoke doEvent in your code."/>
    </Paragraph>
  </RichTextBlock>
</StackPanel>

在后面的代码中-一些逻辑示例:

public MainPage()
{
   this.InitializeComponent();
   myTextBox.TextChanged += (sender, e) => hyperText.Text = myTextBox.Text;
}

private async void myhyperlink_Click(Windows.UI.Xaml.Documents.Hyperlink sender, Windows.UI.Xaml.Documents.HyperlinkClickEventArgs args)
{
  await Windows.System.Launcher.LaunchUriAsync(new Uri(@"http://" + myTextBox.Text));
}

请注意,在WP8.0WP8.1 Silverlight中,您必须将RichTextBoxIsReadOnly = true一起使用

使用一个HyperlinkButton控件。

<HyperlinkButton NavigateUri="http://www.google.com">
            <HyperlinkButton.Content>
                   <TextBlock Text="google.com" />
            </HyperlinkButton.Content>
</HyperlinkButton>

尝试这个:

XAML:

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="0">
    <StackPanel x:Name="stack">
        <TextBox x:Name="txtInput"></TextBox>
        <Button Content="Create Link" Click="Button_Click"/>
    </StackPanel>
</Grid>

CS:

private void Button_Click(object sender, RoutedEventArgs e)
{
    if (txtInput.Text != "")
    {
        HyperlinkButton obj = new HyperlinkButton();
        obj.NavigateUri = new Uri(txtInput.Text,UriKind.RelativeOrAbsolute);
        obj.Content = txtInput.Text;
        obj.TargetName = "_blank";
        this.stack.Children.Add(obj);
    }
}

例如尝试在文本框中使用http://google.com

尝试这个

XAML

 <StackPanel x:Name="stack">
                <TextBlock Text="{Binding LineThree}" TextWrapping="Wrap" Style="{StaticResource PhoneTextNormalStyle}"/>
                <TextBox x:Name="txtInput"></TextBox>
                <Button Content="Create Link" Click="Button_Click"/>
                <RichTextBox x:Name="textBox" ></RichTextBox>
            </StackPanel>

然后在cs文件中单击按钮

private void Button_Click(object sender, RoutedEventArgs e)
        {
            Hyperlink hyperlink = new Hyperlink();
            hyperlink.Inlines.Add(txtInput.Text);

            Paragraph myParagraph = new Paragraph();
            myParagraph.Inlines.Add(hyperlink);
            textBox.Blocks.Add(myParagraph);
        }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM