0

TextBox でハイパーリンクを使用して、WPF アプリへのリンクを追加しています。

<TextBlock Margin="480,92,460,713" Height="24">
 <Hyperlink NavigateUri="{Binding MyLink}" RequestNavigate="Hyperlink_RequestNavigate">My Link</Hyperlink>
</TextBlock>

バインディング「MyLink」が機能しません。使用する必要があるリンクには、コード内で動的に変更する必要がある変数を含むクエリ文字列があります。リンクを XAML にハードコーディングしようとすると、クエリ文字列にアンパサンドを含む変数があるため、エラーが発生します。

私のリンクは、Google などのサイトに向けると機能します。しかし、C#コードで設定し、クエリ文字列で変数を設定できるようにする必要があります。これを行う方法はありますか?ありがとう!

4

1 に答える 1

1

あなたがしていることはうまくいくはずです...

これをテストするには、デフォルトの WPF アプリケーションを作成し、以下のコードを Window1.xaml のグリッド内に配置します...

        <TextBlock>
             <Hyperlink NavigateUri="{Binding}" RequestNavigate="Hyperlink_RequestNavigate">My Link</Hyperlink>
        </TextBlock>

... Window1.xaml.cs にこれを追加...

    public Window1()
    {
        InitializeComponent();

        this.DataContext = "whatever the heck i want";
    }

    private void Hyperlink_RequestNavigate(object sender, RequestNavigateEventArgs e)
    {
        //e.Uri will display "whatever the heck i want" 
        //which would allow you to do whatever you want 
        //with the URL at that point

        Process.Start(new ProcessStartInfo("url_you_want_to_use"));
        e.Handled = true;
    }
于 2010-12-29T19:34:34.907 に答える