0

その下にテキスト行 (TextBlock) を含む多くのロゴ (Image) があります。ユーザーがロゴまたはテキスト行をダブルクリックすると、URL が開かれます (ロゴと行に等しい)。以下の例では、1 つのロゴ/リンクの組み合わせの現在のコードを示しています。しかし、私が抱えている問題は、URL を複製する必要があることです (buttonPcgTools_MouseDoubleClick と TextBlock のコード内の両方の URL)。これを最適化する方法はありますか?

    <Button Height="50" HorizontalAlignment="Left" Margin="10,10,0,0" 
            VerticalAlignment="Top" Width="200" 
            MouseDoubleClick="buttonPcgTools_MouseDoubleClick">
        <Image Stretch="Fill" 
               Source="/PcgTools;component/Help/External Links/pcgtoolssmaller.jpg" />
    </Button>
    <TextBlock Height="28" HorizontalAlignment="Left" Margin="14,60,0,0" 
               VerticalAlignment="Top" Width="203" FontWeight="Bold">
        <Hyperlink NavigateUri=
                    "http://www.korgforums.com/forum/phpBB2/viewtopic.php?t=63765"
                   RequestNavigate="Hyperlink_RequestNavigate">
            <TextBlock Text="PCG Tools @ KorgForums" FontSize="16" />
        </Hyperlink>
    </TextBlock>

buttonPcgTools_MouseDoubleClick のコード:

   private void buttonFaceBook_MouseDoubleClick(object sender, 
        System.Windows.Input.MouseButtonEventArgs e)
    {
        ShowHyperlink("https://www.facebook.com/PcgTools");
    }
4

2 に答える 2

1

簡単な修正は、クラスの静的プロパティを参照することです。名前空間宣言としてNavigateUri="{StaticResource res:Resources.MyURL}"およびを使用して、XAML で文字列を参照できます。xmlns:res="clr-namespace:MyApp.Properties"コードでは、 でアクセスするだけですResources.MyURL。この静的プロパティは、標準の .resx ファイルから取得することも、独自の静的クラスを作成することもできます。

于 2012-12-19T23:51:52.620 に答える
1

画像とテキストの両方を同じハイパーリンクに入れてみませんか? ただし、これは画像をダブルクリックする代わりにシングルクリックで移動できます。

<TextBlock>
    <Hyperlink NavigateUri="..." RequestNavigate="Hyperlink_RequestNavigate">
        <Image Height="50" Source="..."/>
        <LineBreak/>
        <Run>PCG Tools @ KorgForums</Run>
    </Hyperlink>
</TextBlock>
于 2012-12-20T10:20:43.073 に答える