gpt4 book ai didi

winrt-xaml - 如何在手机上隐藏元素?

转载 作者:行者123 更新时间:2023-12-03 12:36:59 25 4
gpt4 key购买 nike

想法是这样的,您正在 Visual Studio 2013 Update 2 中为 Windows 8.1-Update 和 Windows Phone 8.1 创建一个 WinRT-XAML 通用应用程序。您在手机和平​​板电脑平台之间共享相同的 XAML View 。您正在使用聚合的 CommandBar 控件向您的用户显示按钮。在您的 Windows 应用程序中,您有 5 个主要按钮,但 Windows Phone UI 仅支持 4 个。当您在 Windows Phone 中运行您的应用程序时,您会发现第 5 个按钮已删除,但它删除了结束按钮,中间按钮是您想要的已删除。你不想重新排序你的按钮。您有哪些选择可以使一个 UIElement 在手机上隐藏但在平板电脑上可见?

最佳答案

您可以通过多种方式处理此问题。如果您想要一种可靠且可重复使用的方法,您可以在要隐藏的按钮的可见性上使用转换器。 XAML 将是这样的:

<Page.Resources>
<Converters:HiddenWhenPhoneConverter x:Name="HidePhone" />
</Page.Resources>
<Button Visibility="{Binding, Converter={StaticResource PhoneHide}}" />

然后你会有一个像这样的转换器:

public class HiddenWhenPhoneConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, string language)
{
#if WINDOWS_PHONE_APP
return Visibility.Collapsed;
#else
return Visibility.Visible;
#endif
}
public object ConvertBack(object value, Type targetType, object parameter, string language)
{ throw new NotImplementedException(); }
}

public class VisibleWhenPhoneConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, string language)
{
#if WINDOWS_PHONE_APP
return Visibility.Visible;
#else
return Visibility.Collapsed;
#endif
}
public object ConvertBack(object value, Type targetType, object parameter, string language)
{ throw new NotImplementedException(); }
}

请记住:从性能的角度来看,这只会在加载 View 时执行。所以,它应该是一个最小的影响,并给你你想要的结果。还有一件事。如果您没有为 Button 或 Button 的父级 DataContext 设置一些值,转换器将不会触发。您可以通过在 Button 或其父级上设置 DataContext="{x:Null}" 来解决此问题。但是,在大多数情况下,您使用的是 MVVM 并且已经设置了 DataContext,因此这没有实际意义。

关于winrt-xaml - 如何在手机上隐藏元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23503277/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com