Как создать элемент управления кнопки, который отображается серым цветом / отключен в течение определенного интервала времени? - PullRequest
0 голосов
/ 19 ноября 2011

Я хочу создать холст, на котором показываются рекламные объявления в течение 10 секунд, и кнопочный элемент управления, который отображается серым цветом в течение 10 секунд и через 10 секунд позволяет пользователю закрыть рекламный холст.

Я не знаюкак создать эту кнопку управления.Кто-нибудь, помогите, пожалуйста.

Ответы [ 2 ]

3 голосов
/ 19 ноября 2011

Если вы не хотите идти по маршруту ViewModel, вы можете использовать раскадровку для этого.

Я собрал эту главную страницу:

<phone:PhoneApplicationPage
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
    xmlns:System="clr-namespace:System;assembly=mscorlib" 
    x:Class="PhoneApp1.MainPage" mc:Ignorable="d" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" d:DesignHeight="800" d:DesignWidth="480">
    <phone:PhoneApplicationPage.Resources>
        <Storyboard x:Name="DelayEnableButton">
            <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(Control.IsEnabled)" Storyboard.TargetName="button">
                <DiscreteObjectKeyFrame KeyTime="0:0:10">
                    <DiscreteObjectKeyFrame.Value>
                        <System:Boolean>True</System:Boolean>
                    </DiscreteObjectKeyFrame.Value>
                </DiscreteObjectKeyFrame>
            </ObjectAnimationUsingKeyFrames>
        </Storyboard>
    </phone:PhoneApplicationPage.Resources>
    <Grid x:Name="LayoutRoot" Background="Transparent">
        <Button x:Name="button" Content="Button" Height="100" Margin="50" VerticalAlignment="Top" IsEnabled="False"/>
    </Grid>
</phone:PhoneApplicationPage>

Важными частями являются то, чтоу кнопки есть имя, и это имя указано в определении раскадровки.Раскадровка настроена на изменение IsEnabled на True через 10 секунд.Затем в MainPage.xaml.cs я пинаю раскадровку в событии Loaded:

public partial class MainPage : PhoneApplicationPage
{
    public MainPage()
    {
        InitializeComponent();
        this.Loaded += new RoutedEventHandler(MainPage_Loaded);
    }

    void MainPage_Loaded(object sender, RoutedEventArgs e)
    {
        DelayEnableButton.Begin();
    }
}
3 голосов
/ 19 ноября 2011

Привязать IsEnabled кнопки к свойству в вашей модели представления, например IsAdDisplayed. Затем при запуске приложения установите для этого свойства значение true, а через 10 секунд установите для него значение false.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...