0

我有很多徽标(图片),包括其下方的文本行(TextBlock)。当用户双击徽标或文本行时,应打开一个 URL(徽标和行相等)。在下面的示例中,我有一个徽标/链接组合的当前代码。但我遇到的问题是我必须复制 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}"您可以使用和xmlns:res="clr-namespace:MyApp.Properties"作为命名空间声明来引用 XAML 中的字符串。在代码中,您只需使用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 回答