我正在为Windows Phone 7开发一个应用程序。在我的一个页面中,我有一个包含其他几个图像的图像,即包含一些其他小图像的较大图像。现在我想让这些小图片可以点击以导航到另一个页面。所以我所做的是我在所有这些小图像中添加了一个按钮,并将按钮的边框粗细指定为0.我认为应该有更好的选择来做到这一点。我的xaml是:
<Image Grid.RowSpan="2" Source="Image/device.png" Height="754" HorizontalAlignment="Left" Margin="0,15,0,0" Name="image1" Stretch="Fill" VerticalAlignment="Top" Width="480" />
<Button Content="" Grid.RowSpan="2" BorderThickness="0" Height="244" HorizontalAlignment="Left" Margin="23,34,0,0" Name="About" VerticalAlignment="Top" Width="439" Click="About_Click" />
<Button Content="" Grid.Row="1" BorderThickness="0" Height="137" HorizontalAlignment="Left" Margin="34,285,0,0" Name="City" VerticalAlignment="Top" Width="187" Click="City_Click" />
<Button Content="" Grid.Row="1" BorderThickness="0" Height="137" HorizontalAlignment="Left" Margin="261,285,0,0" Name="Cuisine" VerticalAlignment="Top" Width="189" Click="Cuisine_Click" />
<Button Content="" Grid.Row="1" BorderThickness="0" Height="141" HorizontalAlignment="Left" Margin="36,456,0,0" Name="Map" VerticalAlignment="Top" Width="186" Click="Map_Click" />
<Button Content="" Grid.Row="1" BorderThickness="0" Height="141" HorizontalAlignment="Left" Margin="257,455,0,0" Name="Coupon" VerticalAlignment="Top" Width="199" Click="Coupon_Click" />
<Button Content="" Grid.Row="1" BorderThickness="0" Height="70" HorizontalAlignment="Left" Margin="13,650,0,0" Name="Home" VerticalAlignment="Top" Width="67" Click="Home_Click" />
<Button Content="" Grid.Row="1" BorderThickness="0" Height="71" HorizontalAlignment="Right" Margin="0,647,309,0" Name="Map1" VerticalAlignment="Top" Width="64" Click="Map1_Click" />
<Button Content="" Grid.Row="1" BorderThickness="0" Height="74" HorizontalAlignment="Left" Margin="197,649,0,0" Name="City1" VerticalAlignment="Top" Width="70" Click="City1_Click" />
<Button Content="" Grid.Row="1" BorderThickness="0" Height="80" HorizontalAlignment="Left" Margin="296,646,0,0" Name="Cuisine1" VerticalAlignment="Top" Width="73" Click="Cuisine1_Click" />
<Button Content="" Grid.Row="1" BorderThickness="0" Height="76" HorizontalAlignment="Left" Margin="396,646,0,0" Name="Share" VerticalAlignment="Top" Width="79" Click="Share_Click" />
请建议一些更好的方法来做到这一点
答案 0 :(得分:2)
您可以为图片添加点按手柄,例如点按=“Image_Tap”并处理它。
private void Image_Tap(object sender, System.Windows.Input.GestureEventArgs e)
{
// your code
}
答案 1 :(得分:1)
实际上,您应该问过几个问题,但无论如何:
我有一张图片的图片视图,无论何时需要制作 可点击
我建议将一个大图像剪切成几个较小的图像。然后你只需将它们全部添加到网格中并制作其中一些,它们应该是活动的,可点击的
由于默认应用程序栏仅包含4个,我需要5个 所以我做的是我在那个区域创建了5个按钮。现在我想要 所有页面中都有5个按钮,无需编写代码 所有页面中的按钮。我想从一个页面调用这些按钮 并在整个应用程序中显示它。怎么做?
这很容易做到。您应该创建一个applicationBar管理器类。 它看起来像这样:
public class ApplicationBarCreator
{
#region Constructor
/// <summary>
/// Constructor for native page
/// </summary>
/// <param name="page">Current page</param>
public ApplicationBarCreator(PhoneApplicationPage page)
{
page.ApplicationBar = new ApplicationBar();
page.ApplicationBar.IsMenuEnabled = true;
page.ApplicationBar.IsVisible = true;
ApplicationBarMenuItem appBarButtonSettings = new ApplicationBarMenuItem(LocalizedResources.Resources.Get("menusettings"));
appBarButtonSettings.Click += delegate(object sender, EventArgs e)
{
appBarButtonSettings_Click(sender, e, page);
};
ApplicationBarMenuItem appBarButtonUpdate = new ApplicationBarMenuItem(LocalizedResources.Resources.Get("commonrefresh"));
appBarButtonUpdate.Click += delegate(object sender, EventArgs e)
{
appBarButtonUpdate_Click(sender, e, page);
};
ApplicationBarMenuItem appBarButtonAbout = new ApplicationBarMenuItem(LocalizedResources.Resources.Get("menuhelp"));
appBarButtonAbout.Click += delegate(object sender, EventArgs e)
{
appBarButtonAbout_Click(sender, e, page);
};
page.ApplicationBar.MenuItems.Add(appBarButtonSettings);
page.ApplicationBar.MenuItems.Add(appBarButtonUpdate);
page.ApplicationBar.MenuItems.Add(appBarButtonAbout);
}
private void appBarButtonSettings_Click(object sender, EventArgs e, PhoneApplicationPage page)
{
// doing something
}
// and two more down
然后在你的每一页中,你想要添加这个应用程序栏,你只需在页面构造函数中添加一行:
apbCreator = new ApplicationBarCreator(this);
顺便说一句,您可能不需要将页面对象传输到此类并使用委托。 我已经这样做了,因为我需要使用NavigationService,它需要知道当前页面。如果您不需要它,只需使用简单的事件。
答案 2 :(得分:0)
您可以检查图像的事件optios。你可以使用名为image_tap的事件处理程序,就像上面提到的Chris Shao一样。
你也可以使用这些方法
双击:就像双击一样,但用手指代替鼠标 * DragStarted,DragDelta和DragCompleted:可以一起使用的三个事件,可以在Windows Phone上轻松实现拖放 *轻拂:将手指放下,快速移动,然后将其重新拾起。 *保持:将手指放下并将其放在一个地方一段时间 * PinchStarted,PinchDelta和PinchCompleted:三个事件可以一起用来判断用户是否正在捏东西,通常是放大或缩小 *点击:就像点击一样,但用手指代替鼠标