如何导航在用户控件 Universal Windows App 中点击的图像框架?
How to navigate frame on image tapped in a user control Universal Windows App?
我有一个点击它的图像我正在导航到另一个页面
<Image Source="{Binding ImagePath}" Tapped="Image_Tapped_1"/>
C#
private void Image_Tapped_1(object sender, TappedRoutedEventArgs e)
{
var gameData = (sender as Image).DataContext as DataClass;
this.Frame.Navigate(typeof(GamePage), gameData);
}
现在我已经为自适应 UI 创建了一个用户控件,我的代码现在看起来像这样
<Grid>
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="VisualStateGroup">
<VisualState x:Name="VisualStateMin600">
<VisualState.Setters>
<Setter Target="image.(FrameworkElement.Width)" Value="NaN"/>
</VisualState.Setters>
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="600"/>
</VisualState.StateTriggers>
</VisualState>
<VisualState x:Name="VisualStateMin0">
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="1"/>
</VisualState.StateTriggers>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Image x:Name="image" Source="{Binding ImagePath}" Tapped="image_Tapped_1" Width="250" />
</Grid>
现在的问题是,我将如何导航到用户控件中点击的 属性 无法使用的其他页面?
尝试((Frame)Window.Current.Content).NavigateTo
或者,如果需要,将 public 属性 设置为 App.Xaml.cs 上的根框架,这样您就可以随时访问它。
在您的用户控件(我们称之为 ImageControl)的代码隐藏中,您必须像这样管理一个事件处理程序:
public sealed partial class ImageControl : UserControl
{
public event EventHandler ImageTapped;
public void image_Tapped_1(object sender, TappedRoutedEventArgs e)
{
if (ImageTapped != null)
{
ImageTapped(this, EventArgs.Empty);
}
}
}
从 XAML 声明 ImageControl 的地方开始:
<local:ImageControl ImageTapped="ImageControl_ImageTapped" />
最后来自后面的 C# 代码:
private void ImageControl_ImageTapped(object sender, EventArgs e)
{
this.Frame.Navigate(typeof(YourOtherPage));
}
我有一个点击它的图像我正在导航到另一个页面
<Image Source="{Binding ImagePath}" Tapped="Image_Tapped_1"/>
C#
private void Image_Tapped_1(object sender, TappedRoutedEventArgs e)
{
var gameData = (sender as Image).DataContext as DataClass;
this.Frame.Navigate(typeof(GamePage), gameData);
}
现在我已经为自适应 UI 创建了一个用户控件,我的代码现在看起来像这样
<Grid>
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="VisualStateGroup">
<VisualState x:Name="VisualStateMin600">
<VisualState.Setters>
<Setter Target="image.(FrameworkElement.Width)" Value="NaN"/>
</VisualState.Setters>
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="600"/>
</VisualState.StateTriggers>
</VisualState>
<VisualState x:Name="VisualStateMin0">
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="1"/>
</VisualState.StateTriggers>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Image x:Name="image" Source="{Binding ImagePath}" Tapped="image_Tapped_1" Width="250" />
</Grid>
现在的问题是,我将如何导航到用户控件中点击的 属性 无法使用的其他页面?
尝试((Frame)Window.Current.Content).NavigateTo
或者,如果需要,将 public 属性 设置为 App.Xaml.cs 上的根框架,这样您就可以随时访问它。
在您的用户控件(我们称之为 ImageControl)的代码隐藏中,您必须像这样管理一个事件处理程序:
public sealed partial class ImageControl : UserControl
{
public event EventHandler ImageTapped;
public void image_Tapped_1(object sender, TappedRoutedEventArgs e)
{
if (ImageTapped != null)
{
ImageTapped(this, EventArgs.Empty);
}
}
}
从 XAML 声明 ImageControl 的地方开始:
<local:ImageControl ImageTapped="ImageControl_ImageTapped" />
最后来自后面的 C# 代码:
private void ImageControl_ImageTapped(object sender, EventArgs e)
{
this.Frame.Navigate(typeof(YourOtherPage));
}