WP7/Silverlight超链接图像

nul*_*ble 4 silverlight image hyperlink windows-phone-7

我是Silverlight和WP7的新手.我一直在尝试使用HyperlinkBut​​ton热链接图像并将其内容设置为图像.但是,这只会使我的图像消失.

重现:

  1. 创建一个新的Windows Phone Panorama应用程序.
  2. 在MainPage.xaml上,将Rectangle替换为Image,将源设置为ApplicationIcon.png.
  3. 然后,用HyperlinkBut​​ton环绕它.
<HyperlinkButton NavigateUri="http://www.bing.com" TargetName="_blank">
   <Image Source="ApplicationIcon.png"/>
</HyperlinkButton>
Run Code Online (Sandbox Code Playgroud)

我尝试了很多属性,没有什么对我有用.这两个项目都是相互依赖的.在WP7中这可能吗?它是一个外部URI.我搜索了文档,发现没有任何帮助.

您的意见和建议表示赞赏.

Mic*_*k N 6

这有点奇怪,因为你无法直接将Image作为控件的内容放置.测试期间在这里探讨这个主题.

Peter Torr先前曾建议使用stackpanel作为超链接的内容.这在当时确实有效,但由于某种原因目前似乎没有起作用.

话虽如此,Richard Woo确定了一项工作,即使用超链接背景属性.我确认这仍然有效如下:

    <HyperlinkButton Height="310" HorizontalAlignment="Left" Margin="206,202,0,0" Name="hyperlinkButton1" VerticalAlignment="Top" Width="200" >
        <HyperlinkButton.Background>
            <ImageBrush ImageSource="SplashScreenImage.jpg"/>
        </HyperlinkButton.Background>
    </HyperlinkButton>
Run Code Online (Sandbox Code Playgroud)

作为一个需要在建议论坛或连接上查看的问题,可能值得提出这个问题.

至于超链接的替代方案,Matt的图像和手势选项看起来可行.您也可以使用Button并在Blend中重新设置它的外观.


Mat*_*cey 5

看起来你正试图在点击时使图像启动网页.

启动网页的唯一方法是使用WebBrowserTask.如果我是你,我会在GestureListener(来自工具包)中包装一个Image,并在tap事件上启动任务.

像这样:

XAML:

    <Image Source="images/appbar.favs.addto.rest.png" Stretch="None" >
        <Controls:GestureService.GestureListener>
            <Controls:GestureListener Tap="GestureListener_Tap" />
        </Controls:GestureService.GestureListener>
    </Image>
Run Code Online (Sandbox Code Playgroud)

CS:

    private void GestureListener_Tap(object sender, GestureEventArgs e)
    {
        var wbt = new WebBrowserTask();
        wbt.URL = "http://www.stackoverflow.com/";
        wbt.Show();
    }
Run Code Online (Sandbox Code Playgroud)