编辑HyperLink NavigationURI WPF

时间:2018-05-31 10:39:26

标签: c# wpf hyperlink navigateuri

我是WPF的新手。 我有一个ComboBox,其中包含多个值和一个HyperLink,只要ComboBox值发生变化,我就会相应地更改NavigateUri的{​​{1}}。

在cs文件中,我有一个字典,其中的键与组合项相同,每个键的值是我想根据HyperLink选择导航到的链接。

ComboBox

和cs文件:

 LinkQuery["A"] = "https://google.com";
 LinkQuery["B"] = "https://facebook.com";
 LinkQuery["C"] = "https://Youtube.com";

<ComboBox x:Name="box_ComboBox"  Visibility="Visible"  Grid.Column="5" Grid.Row="4" Width="90"
    ItemsSource="{Binding Path=Fields}"
    IsSynchronizedWithCurrentItem="True"
    SelectedValue="{Binding Path=Field}" Grid.ColumnSpan="2" HorizontalAlignment="Left" Height="22" VerticalAlignment="Top" SelectionChanged="component_ComboBox_SelectionChanged"/>

....

<TextBlock x:Name="LinkToQuery" Grid.Row="39" Grid.Column="1" Grid.ColumnSpan="4" Margin="10">           
            <Hyperlink x:Name="URLQuery" RequestNavigate="Hyperlink_RequestNavigate" Foreground="Blue">
                Selected: A
            </Hyperlink>
 </TextBlock>

当我更改组合选择时,文本确实正确更改,但链接不起作用。

谢谢。

1 个答案:

答案 0 :(得分:1)

Run元素放在Hyperlink中并设置此属性的Text属性:

<TextBlock x:Name="LinkToQuery" Grid.Row="39" Grid.Column="1" Grid.ColumnSpan="4" Margin="10">           
    <Hyperlink x:Name="URLQuery" RequestNavigate="Hyperlink_RequestNavigate" Foreground="Blue">
        <Run x:Name="linkText" Text="Selected: A" />
    </Hyperlink>
</TextBlock>
private void component_ComboBox_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e)
{
    string selectedComponent = box_ComboBox.SelectedItem.ToString();
    linkText.Text = string.Format("Selected: {0} ", selectedComponent);
    URLQuery.NavigateUri = new System.Uri(LinkQuery[selectedComponent], System.UriKind.Absolute);
}