【问题标题】:Windows Phone 8 Image HyperlinkWindows Phone 8 图像超链接
【发布时间】:2013-10-16 11:28:45
【问题描述】:

我开始为 WP8 开发一些应用程序,我有一个问题。 所以这就是我想要做的: 在 xaml 主页文件上创建一个新按钮。 当点击=“butt1_Click”显示一个新的消息框或类似的东西(可能是一个新的StackPanel)时,它将包含:

第 1 项、第 2 项、第 3 项.... 我将尝试在 xaml 中解释这一点,如果有人可以在 C# 中转换代码..

    <Hyperlink 
Content="Item 1" Name="HyperlinkImage"
FontSize="18" Width="175" Height="75" 
Margin="140,350,140,185" NavigateUri="/Assets/myimage.png/"/>

我会用 HTML 解释这一点,也许这样有人会明白我想要做什么:

<a href="/Assets/myimage.png/"> Item 1 </a>

非常感谢!

下面是一张关于我想做的事情的小图片: http://img12.imageshack.us/img12/5769/zylk.jpg

【问题讨论】:

  • 您的应用中是否有用于查看图像的页面?
  • 我可以确认您正在尝试做的事情是:在某种列表中的屏幕上有许多选项。轻按每个项目时,将显示不同的图像。它是否正确?图片应该显示在哪里?在同一页上?在不同的页面上?全屏?
  • 我会尝试编写一个伪代码:我有一个带有按钮的页面。当用户点击一个按钮时,我想打开一个新页面,其中应该是:超链接项目,例如:Street 1、Street 2。当用户点击超链接时,图像被打开。

标签: c# xaml windows-phone-8 hyperlink


【解决方案1】:

试试这样的:

在 MainPage.xaml 添加:

<StackPanel>
    <Button Content="Image 1" Tag="/Assets/AlignmentGrid.png" Click="ImageButtonClicked" />
    <Button Content="Image 2" Tag="/Assets/ApplicationIcon.png" Click="ImageButtonClicked" />
    <Button Content="Image 3" Tag="/Assets/Tiles/FlipCycleTileMedium.png" Click="ImageButtonClicked" />
</StackPanel>

(请注意,所有按钮都有相同的事件处理程序)

在 MainPage.xaml.cs 添加:

private void ImageButtonClicked(object sender, RoutedEventArgs e)
{
    NavigationService.Navigate(
        new Uri("/ImagePage.xaml?path=" + 
                HttpUtility.UrlEncode((sender as Button).Tag.ToString()),
                UriKind.Relative));
}

添加一个页面 ImagePage.xaml 并在其中添加以下内容:

<Image x:Name="TheImage" />

然后在 ImagePage.xaml.cs 中

protected override void OnNavigatedTo(NavigationEventArgs e)
{
    string path = "";

    if (NavigationContext.QueryString.TryGetValue("path", out path))
    {
        if (!string.IsNullOrWhiteSpace(path))
        {
            this.TheImage.Source =
                new BitmapImage(new Uri(path, UriKind.RelativeOrAbsolute));
        }
    }
}

这使您可以在 XAML 中定义单击按钮时要在单独页面上显示的图像。
希望这会有所帮助。

【讨论】:

  • 这是在单击按钮后立即显示图像的好方法..但我希望在单击按钮后打开一个带有超链接文本的新 texbox,当文本被点击时它会打开图像.我不知道这是否可能:-(
  • 我举个例子: 1. McDonnald's 2. KFC 3. ... 用户点击下一页的第一个按钮后显示:adress of McDonnals 1, adrr. 2;下一位用户点击地址 1 并弹出地图截图。
  • @ZaraGheorghe 您询问了有关在 XAML 中对这些引用进行硬编码的问题,但这可能不是最好的处理方式。使用“DataBound Application”模板创建一个新应用程序。它将展示如何将列表绑定到 ViewModel,然后在另一个页面上显示特定项目的详细信息。这就是我建议你的技术。然后,您可以添加另一个页面以在另一个页面或详细信息页面上显示所选项目的图像(假设图像路径已添加到视图模型项)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多