[W 8.1]隐藏特定页面上的按钮 [英] [W 8.1] Hide button on certain page

查看:107
本文介绍了[W 8.1]隐藏特定页面上的按钮的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有1 xml用于所有其他页面。


XAML:

<网格x:名称=" LayoutRoot"> 

< Grid.ChildrenTransitions>
< TransitionCollection>
< EntranceThemeTransition />
< / TransitionCollection>
< /Grid.ChildrenTransitions>

< Grid.RowDefinitions>
< RowDefinition Height =" Auto" />
< RowDefinition Height =" *" />
< /Grid.RowDefinitions>


<! - TODO:内容应放在以下网格中 - >
< Grid Grid.Row =" 1" X:名称= QUOT; ContentRoot"余量= QUOT; 19,0,0,0">
< AppBarButton x:Name =" playBtn"图标= QUOT;播放"的Horizo​​ntalAlignment = QUOT;右"能见度= QUOT;折叠"点击= QUOT; playBtn_Click" />
< AppBarButton x:Name =" pauseBtn"图标= QUOT;暂停"的Horizo​​ntalAlignment = QUOT;右"点击= QUOT; playBtn_Click" />
< MediaElement x:Name =" soundTrack"能见度= QUOT;折叠" AudioCategory = QUOT; ForegroundOnlyMedia" IsLooping = QUOT;真"源= QUOT;资产/ ost.mp3" />
< Frame x:Name =" mainFrame"背景= QUOT; {X:空}" />
< / Grid>
< / Grid>

代码:

 const string soundTrackToken =" soundtrack" ;; 
int flag = 1;

protected async override void OnNavigatedTo(NavigationEventArgs e)
{
navigationHelper.OnNavigatedTo(e);
mainFrame.Navigate(typeof(Home1));

if(StorageApplicationPermissions.FutureAccessList.ContainsItem(soundTrackToken))
{

StorageFile audioFile = await StorageApplicationPermissions.FutureAccessList.GetFileAsync(soundTrackToken);
if(audioFile!= null)
{
await StartAudio(audioFile);
}
}

}

私有异步System.Threading.Tasks.Task StartAudio(StorageFile audioFile)
{
var audio = await audioFile.OpenAsync(FileAccessMode.Read);
var props = await audioFile.Properties.GetMusicPropertiesAsync();

soundTrack.SetSource(audio,audioFile.ContentType);

}

// private void playButton_Checked(object sender,RoutedEventArgs e)
// {
// soundTrack.Play();
//}

// private void playButton_Unchecked(object sender,RoutedEventArgs e)
// {
// soundTrack.Pause();
//}

private void playBtn_Tapped(object sender,TappedRoutedEventArgs e)
{
if(flag == 1)
{
//playBtn.Icon =
//playBtn.Source = new BitmapImage(new Uri(" ms-appx:/images/media/play.png"));
flag = 0;
soundTrack.Pause();
playBtn.Visibility = Visibility.Visible;
pauseBtn.Visibility = Visibility.Collapsed;
}
else if(flag == 0)
{
//playBtn.Source = new BitmapImage(new Uri(" ms-appx:/ images / media / pause .PNG"));
flag = 1;
soundTrack.Play();
playBtn.Visibility = Visibility.Collapsed;
pauseBtn.Visibility = Visibility.Visible;

}
}
}
}

如何隐藏特定页面上的按钮(例如:主页),但按钮出现在其他页面上?


注意:


我想隐藏playBtn

解决方案

嗨Priscillia,


Welcome开发通用Windows应用程序
论坛!


默认情况下,playBtn折叠如下:

< AppBarButton x:Name =" playBtn"图标= QUOT;播放"的Horizo​​ntalAlignment = QUOT;右" 
可见性="折叠" Click =" playBtn_Click" />

如果我没有误解你,为了隐藏特定页面上的按钮(例如:主页) ,但按钮出现在其他页面上,请在除主页之外的其他页面中添加以下代码:
$

 protected override void OnNavigatedTo(NavigationEventArgs e)
{
navigationHelper.OnNavigatedTo(e);
playBtn.Visibility = Visibility.Visible;
}

通过这种方式playBtn在其他页面中可见但在主页中已折叠。



最好的问候,

Amy Peng


I have 1 xml to be used in all the other page.

XAML:

 <Grid x:Name="LayoutRoot">

        <Grid.ChildrenTransitions>
            <TransitionCollection>
                <EntranceThemeTransition/>
            </TransitionCollection>
        </Grid.ChildrenTransitions>

        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>


        <!--TODO: Content should be placed within the following grid-->
        <Grid Grid.Row="1" x:Name="ContentRoot" Margin="19,0,0,0">
            <AppBarButton x:Name="playBtn" Icon="Play" HorizontalAlignment="Right" Visibility="Collapsed" Click="playBtn_Click" />
            <AppBarButton x:Name="pauseBtn" Icon="Pause" HorizontalAlignment="Right" Click="playBtn_Click" />
            <MediaElement x:Name="soundTrack" Visibility="Collapsed" AudioCategory="ForegroundOnlyMedia" IsLooping="True" Source="Assets/ost.mp3" />
            <Frame x:Name="mainFrame" Background="{x:Null}" />
        </Grid>
    </Grid>

Code:

const string soundTrackToken = "soundtrack";
        int flag = 1;

        protected async override void OnNavigatedTo(NavigationEventArgs e)
        {
            navigationHelper.OnNavigatedTo(e);
            mainFrame.Navigate(typeof(Home1));

            if (StorageApplicationPermissions.FutureAccessList.ContainsItem(soundTrackToken))
            {

                StorageFile audioFile = await StorageApplicationPermissions.FutureAccessList.GetFileAsync(soundTrackToken);
                if (audioFile != null)
                {
                    await StartAudio(audioFile);
                }
            }
           
        }

        private async System.Threading.Tasks.Task StartAudio(StorageFile audioFile)
        {
            var audio = await audioFile.OpenAsync(FileAccessMode.Read);
            var props = await audioFile.Properties.GetMusicPropertiesAsync();

            soundTrack.SetSource(audio, audioFile.ContentType);
            
        }

        //private void playButton_Checked(object sender, RoutedEventArgs e)
        //{
        //    soundTrack.Play();
        //}

        //private void playButton_Unchecked(object sender, RoutedEventArgs e)
        //{
        //    soundTrack.Pause();
        //}

        private void playBtn_Tapped(object sender, TappedRoutedEventArgs e)
        {
            if (flag == 1) 
            {
                //playBtn.Icon = 
                //playBtn.Source = new BitmapImage(new Uri("ms-appx:/images/media/play.png"));
                flag = 0;
                soundTrack.Pause();
                playBtn.Visibility = Visibility.Visible;
                pauseBtn.Visibility = Visibility.Collapsed;
            }
            else if (flag == 0)
            {
                //playBtn.Source = new BitmapImage(new Uri("ms-appx:/images/media/pause.png"));
                flag = 1;
                soundTrack.Play();
                playBtn.Visibility = Visibility.Collapsed;
                pauseBtn.Visibility = Visibility.Visible;
                
            }
        }
    }
}

How to hide the button on a specific page (for example: the home page), but the button appears on other pages?

Note:

i want to hide playBtn

解决方案

Hi Priscillia,

Welcome to the Developing Universal Windows apps forum!

By default the playBtn is collapsed as following:

<AppBarButton x:Name="playBtn" Icon="Play" HorizontalAlignment="Right" 
Visibility="Collapsed" Click="playBtn_Click" />

If I do not misunderstood you, in order to hide the button on a specific page (for example: the home page), but the button appears on other pages, please add the following code in the others page except the home page:

  protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            navigationHelper.OnNavigatedTo(e);
            playBtn.Visibility = Visibility.Visible;
        }

In this way the playBtn is visible in others page but collapsed in home page.

Best Regards,
Amy Peng


这篇关于[W 8.1]隐藏特定页面上的按钮的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆