locked
Background botão pressionado RRS feed

  • Discussão Geral

  • Bom, criei um botão simples sem Background, BorderBrush e Foreground, porém toda vez que eu pressiono ele, aparece um background quadrado da cor do Accent. Eu não quero que isso aconteça, quero que após pressionado continue invisível, como posso fazer isso?
    • Editado Matheus Teles domingo, 30 de março de 2014 03:38 Erro ortográfico
    • Tipo Alterado Giovani Cr terça-feira, 1 de abril de 2014 19:12
    domingo, 30 de março de 2014 03:36

Todas as Respostas

  • Você tem que criar um estilo personalizado para o tipo Button, onde você vai definir a aparência dele...


    Herbert Lausmann

    domingo, 30 de março de 2014 10:48
  • E como faço isso Herbert?
    domingo, 30 de março de 2014 14:55
  • E como faço isso Herbert?

    E qual Component inicializo?
    domingo, 30 de março de 2014 15:23
  • Veja esses tutoriais, são para WPF, mas devem servir para Windows Phone também, afinal as duas plataformas usam xaml:

    WPF: Personalizando controles do Windows Presentation Foundation

    Estilos e modelos no WPF


    Herbert Lausmann

    domingo, 30 de março de 2014 15:49
  • Rapidin, oque é WPF?
    domingo, 30 de março de 2014 16:00
  • WPF (sigla para Windows Presentation Foundation) é uma plataforma de desenvolvimento de aplicativos desktop, existente no .Net Framework a partir da versão 3.0, que faz uso da linguagem de marcação XAML, a mesmíssima utilizada no Windows Phone, para desenvolver a interface.

    Herbert Lausmann

    domingo, 30 de março de 2014 16:06
  • Amigo estou tentando fazer o processo pelo segundo link que você me deu, porém está dando um erro quando vou fazer debug ;

    "A first chance exception of type 'System.Windows.Markup.XamlParseException' occurred in System.Windows.ni.dll

    If there is a handler for this exception, the program may be safely continued."

    e o marcador aponta para "InitializeComponent();"

    domingo, 30 de março de 2014 17:12
  • Como está o seu XAML?

    Herbert Lausmann

    domingo, 30 de março de 2014 17:14
  •     <Grid x:Name="LayoutRoot" Background="Transparent">
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="*"/>
            </Grid.RowDefinitions>
    
    <StackPanel>
                <StackPanel.Resources>
                    <Style TargetType="Button" x:Key="RedButton">
                        <Setter Property="BorderBrush" Value="Red" />
                        <Setter Property="Background" Value="Blue" />
                    </Style>
                </StackPanel.Resources>
            </StackPanel>
    
            <Button Content="Button" HorizontalAlignment="Left" Margin="281,164,0,0" Grid.Row="1" VerticalAlignment="Top" Height="246" Width="189" Style="{StaticResource RedButton}"/>
    
        </Grid>

    Não estou conseguindo aplicar o Style no Botão.

    Parece que o erro está no button, isso está sublinhado "Style="{StaticResource RedButton}""

    domingo, 30 de março de 2014 17:27
  • Veja se assim funciona:

        <Grid x:Name="LayoutRoot" Background="Transparent">
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="*"/>
            </Grid.RowDefinitions>
    
            <Grid.Resources>
                    <Style TargetType="Button" x:Key="RedButton">
                        <Setter Property="BorderBrush" Value="Red" />
                        <Setter Property="Background" Value="Blue" />
                    </Style>
            </Grid.Resources>
    
            <Button Content="Button" HorizontalAlignment="Left" Margin="281,164,0,0" Grid.Row="1" VerticalAlignment="Top" Height="246" Width="189" Style="{StaticResource RedButton}"/>
    
        </Grid>

    Se não rolar, você pode tentar trocar a palavra StaticResource por DynamicResource..


    Herbert Lausmann

    domingo, 30 de março de 2014 17:42
  • Funfou, o efeito foi aplicado, mas ainda não estou conseguindo fazer o deploy fica dando isso "Property elements cannot be in the middle of an element's content. They must be before or after the content."

    <Grid.Resources>
                <Style TargetType="Button" x:Key="RedButton">
                    <Setter Property="BorderBrush" Value="Red" />
                    <Setter Property="Background" Value="Blue" />
                </Style>
            </Grid.Resources>
            <Button Content="Button" HorizontalAlignment="Left" Margin="281,164,0,0" Grid.Row="1" VerticalAlignment="Top" Height="246" Width="189" Style="{StaticResource RedButton}"/>
    

    O <Button/> Todin fica sublinhado

    domingo, 30 de março de 2014 18:06
  • Vê se assim para de dar erro:

        <Grid x:Name="LayoutRoot" Background="Transparent">
            
            <Button Content="Button" HorizontalAlignment="Left" Margin="281,164,0,0" Grid.Row="1" VerticalAlignment="Top" Height="246" Width="189" Style="{StaticResource RedButton}"/>
    
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="*"/>
            </Grid.RowDefinitions>
    
            <Grid.Resources>
                    <Style TargetType="Button" x:Key="RedButton">
                        <Setter Property="BorderBrush" Value="Red" />
                        <Setter Property="Background" Value="Blue" />
                    </Style>
            </Grid.Resources>
    
        </Grid>


    Herbert Lausmann

    domingo, 30 de março de 2014 18:10
  • Tudo certo mas deu erro do inicializecomponent denovo.
    domingo, 30 de março de 2014 18:19
  • Tem mais controles dentro desse Grid aí além do Button?

    Herbert Lausmann

    domingo, 30 de março de 2014 18:36
  • Sim, aliás tem muita coisa :
        <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:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:UI="clr-namespace:Microsoft.Advertising.Mobile.UI;assembly=Microsoft.Advertising.Mobile.UI"
        x:Class="Programa.MainPage"
        mc:Ignorable="d"
        FontFamily="{StaticResource PhoneFontFamilyNormal}"
        FontSize="{StaticResource PhoneFontSizeNormal}"
        Foreground="{StaticResource PhoneForegroundBrush}"
        SupportedOrientations="Portrait" Orientation="Portrait"
        shell:SystemTray.IsVisible="True">
    <Grid x:Name="LayoutRoot" Background="Transparent">
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="*"/>
            </Grid.RowDefinitions>
    
            <Image HorizontalAlignment="Left" Height="1144" Margin="-388,-158,-464,-218" VerticalAlignment="Top" Width="1332" Source="/Assets/Img1.jpg" Grid.RowSpan="2"/>
    
            <Image HorizontalAlignment="Left" Height="1235" Margin="-376,-412,-379,-55" VerticalAlignment="Top" Width="1235" Source="/Assets/Img2.png" Grid.RowSpan="2" RenderTransformOrigin="0.5,0.5" UseLayoutRounding="False" d:LayoutRounding="Auto">
                <Image.RenderTransform>
                    <CompositeTransform Rotation="-69.518"/>
                </Image.RenderTransform>
            </Image>      
            <Button Content="" HorizontalAlignment="Left" Margin="17,10,0,0" VerticalAlignment="Top" Height="259" Width="259" Click="Button_Click" Grid.Row="1" Foreground="{x:Null}" BorderBrush="{x:Null}" Background="{x:Null}"  />
            <Button Content="" Height="255" Margin="74,241,0,0" Grid.Row="1" VerticalAlignment="Top" Click="Button_Click_1" BorderBrush="{x:Null}" Foreground="{x:Null}" HorizontalAlignment="Left" Width="259"/>
            <TextBlock HorizontalAlignment="Left" Margin="346,686,0,0" Grid.Row="1" TextWrapping="Wrap" Text="Matheus Teles" VerticalAlignment="Top" Height="37" Width="134"/>
            <Button Content="" HorizontalAlignment="Left" Margin="0,479,0,0" Grid.Row="1" VerticalAlignment="Top" Width="234" Height="234" Click="Button_Click_2" BorderBrush="{x:Null}" Foreground="{x:Null}"/>
            <Button Content="" HorizontalAlignment="Left" Margin="216,493,0,0" Grid.Row="1" VerticalAlignment="Top" Width="242" Height="185" Click="Button_Click_3" BorderBrush="{x:Null}" Foreground="{x:Null}"/>
            <Button x:Name="Button2" Content="" HorizontalAlignment="Left" Margin="384,35,0,0" VerticalAlignment="Top" Width="86" RenderTransformOrigin="0.5,0.5" Height="86" Foreground="{x:Null}" BorderBrush="{x:Null}" Click="Button2_Click" Grid.Row="1">
                <Button.Background>
                    <ImageBrush ImageSource="/Botao2.png"/>
                </Button.Background>
            </Button>
            <UI:AdControl ApplicationId="test_client" AdUnitId="Image480_80" HorizontalAlignment="Left" Height="80" VerticalAlignment="Top" Width="480" Grid.RowSpan="2"/>
            <Button Content="Publicidade -- Publicidade -- Publicidade--Publicidade -- Publicidade -- Publicidade--&#xA;Publicidade -- Publicidade -- Publicidade--Publicidade -- Publicidade -- Publicidade--&#xA;" HorizontalAlignment="Left" VerticalAlignment="Top" Height="109" Width="518" BorderBrush="{x:Null}" Foreground="#FFFFC500" Click="Button_Click_8" Grid.RowSpan="2" FontStyle="Italic" Margin="-15,-15,-23,0">
                <Button.Background>
                    <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                        <GradientStop Color="Black" Offset="0"/>
                        <GradientStop Color="#FFBF0000" Offset="1"/>
                    </LinearGradientBrush>
                </Button.Background>
            </Button>
            <Grid x:Name="LayoutRoot2" Background="Transparent">
    
                <Button Content="Button" HorizontalAlignment="Left" Margin="281,164,0,0" Grid.Row="1" VerticalAlignment="Top" Height="246" Width="189" Style="{StaticResource RedButton}"/>
    
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="*"/>
                </Grid.RowDefinitions>
    
                <Grid.Resources>
                    <Style TargetType="Button" x:Key="RedButton">
                        <Setter Property="BorderBrush" Value="Red" />
                        <Setter Property="Background" Value="Blue" />
                    </Style>
                </Grid.Resources>
    
            </Grid>
    
        </Grid>

    domingo, 30 de março de 2014 18:53
  • Tenta assim:

       <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:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:UI="clr-namespace:Microsoft.Advertising.Mobile.UI;assembly=Microsoft.Advertising.Mobile.UI"
        x:Class="Programa.MainPage"
        mc:Ignorable="d"
        FontFamily="{StaticResource PhoneFontFamilyNormal}"
        FontSize="{StaticResource PhoneFontSizeNormal}"
        Foreground="{StaticResource PhoneForegroundBrush}"
        SupportedOrientations="Portrait" Orientation="Portrait"
        shell:SystemTray.IsVisible="True">
    
    <PhoneApplicationPage.Resources>
                    <Style TargetType="Button" x:Key="RedButton">
                        <Setter Property="BorderBrush" Value="Red" />
                        <Setter Property="Background" Value="Blue" />
                    </Style>
    </PhoneApplicationPage.Resources>
    
    <Grid x:Name="LayoutRoot" Background="Transparent">
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="*"/>
            </Grid.RowDefinitions>
    
            <Image HorizontalAlignment="Left" Height="1144" Margin="-388,-158,-464,-218" VerticalAlignment="Top" Width="1332" Source="/Assets/Img1.jpg" Grid.RowSpan="2"/>
    
            <Image HorizontalAlignment="Left" Height="1235" Margin="-376,-412,-379,-55" VerticalAlignment="Top" Width="1235" Source="/Assets/Img2.png" Grid.RowSpan="2" RenderTransformOrigin="0.5,0.5" UseLayoutRounding="False" d:LayoutRounding="Auto">
                <Image.RenderTransform>
                    <CompositeTransform Rotation="-69.518"/>
                </Image.RenderTransform>
            </Image>      
            <Button Content="" HorizontalAlignment="Left" Margin="17,10,0,0" VerticalAlignment="Top" Height="259" Width="259" Click="Button_Click" Grid.Row="1" Foreground="{x:Null}" BorderBrush="{x:Null}" Background="{x:Null}"  />
            <Button Content="" Height="255" Margin="74,241,0,0" Grid.Row="1" VerticalAlignment="Top" Click="Button_Click_1" BorderBrush="{x:Null}" Foreground="{x:Null}" HorizontalAlignment="Left" Width="259"/>
            <TextBlock HorizontalAlignment="Left" Margin="346,686,0,0" Grid.Row="1" TextWrapping="Wrap" Text="Matheus Teles" VerticalAlignment="Top" Height="37" Width="134"/>
            <Button Content="" HorizontalAlignment="Left" Margin="0,479,0,0" Grid.Row="1" VerticalAlignment="Top" Width="234" Height="234" Click="Button_Click_2" BorderBrush="{x:Null}" Foreground="{x:Null}"/>
            <Button Content="" HorizontalAlignment="Left" Margin="216,493,0,0" Grid.Row="1" VerticalAlignment="Top" Width="242" Height="185" Click="Button_Click_3" BorderBrush="{x:Null}" Foreground="{x:Null}"/>
            <Button x:Name="Button2" Content="" HorizontalAlignment="Left" Margin="384,35,0,0" VerticalAlignment="Top" Width="86" RenderTransformOrigin="0.5,0.5" Height="86" Foreground="{x:Null}" BorderBrush="{x:Null}" Click="Button2_Click" Grid.Row="1">
                <Button.Background>
                    <ImageBrush ImageSource="/Botao2.png"/>
                </Button.Background>
            </Button>
            <UI:AdControl ApplicationId="test_client" AdUnitId="Image480_80" HorizontalAlignment="Left" Height="80" VerticalAlignment="Top" Width="480" Grid.RowSpan="2"/>
            <Button Content="Publicidade -- Publicidade -- Publicidade--Publicidade -- Publicidade -- Publicidade--&#xA;Publicidade -- Publicidade -- Publicidade--Publicidade -- Publicidade -- Publicidade--&#xA;" HorizontalAlignment="Left" VerticalAlignment="Top" Height="109" Width="518" BorderBrush="{x:Null}" Foreground="#FFFFC500" Click="Button_Click_8" Grid.RowSpan="2" FontStyle="Italic" Margin="-15,-15,-23,0">
                <Button.Background>
                    <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                        <GradientStop Color="Black" Offset="0"/>
                        <GradientStop Color="#FFBF0000" Offset="1"/>
                    </LinearGradientBrush>
                </Button.Background>
            </Button>
            <Grid x:Name="LayoutRoot2" Background="Transparent">
    
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="*"/>
                </Grid.RowDefinitions>
    
                <Button Content="Button" HorizontalAlignment="Left" Margin="281,164,0,0" Grid.Row="1" VerticalAlignment="Top" Height="246" Width="189" Style="{StaticResource RedButton}"/>
                
            </Grid>
    
        </Grid>


    Herbert Lausmann

    domingo, 30 de março de 2014 19:36
  • Desta vez bugou foi tudo, será que não existe outro método para desativar o background quando o botão estiver pressionado?
    domingo, 30 de março de 2014 19:51
  • Hum, você pode fazer assim também:

    <Button Content="Button" HorizontalAlignment="Left" Margin="281,164,0,0" Grid.Row="1" VerticalAlignment="Top" Height="246" Width="189">
    
    <Button.Style>
                    <Style TargetType="Button">
                       
    <Setter Property="BorderBrush" Value="Red" />
                       
    <Setter Property="Background" Value="Blue" />
                   
    </Style> </Button.Style> </Button>


    Herbert Lausmann

    domingo, 30 de março de 2014 19:58
  • Opa funcionou :D

    Mas qual Property eu coloco pra definir o "pressedbackground"?

    domingo, 30 de março de 2014 20:01
  • Aí vai ter que avançar um pouco mais. Vai ter que definir um Template:

    <Button Content="Button" HorizontalAlignment="Left" Margin="281,164,0,0" Grid.Row="1" VerticalAlignment="Top" Height="246" Width="189">
    
    <Button.Style>
             <Style TargetType="Button">
                        <Setter Property="Template">
                               <Setter.Value>
                                    <ControlTemplate TargetType="Button">
                                <Border x:Name="border" Background="Blue" BorderBrush="{TemplateBinding BorderBrush}">  
                                <ContentPresenter VerticalAlignment="Center" HorizontalAlignment="Center"/>  
                                </Border>                              
                                <ControlTemplate.Triggers>   
                                    <Trigger Property="IsPressed" Value="true">  
                                        <Setter Property="Fill" TargetName="border" Value="Blue"/>
                                    </Trigger>  
                                </ControlTemplate.Triggers>  
                                    </ControlTemplate>
                               </Setter.Value>
                        </Setter>
                        
    
                        <Setter Property="BorderBrush" Value="Red" />
                        <Setter Property="Background" Value="Blue" />     
             </Style>
    </Button.Style>
    
    </Button>


    Talvez tenha que mudar algumas coisas para funcionar, mas é basicamente isso.

    Herbert Lausmann


    domingo, 30 de março de 2014 20:16
  •  
    
    

    Existem 5 erros neste código, No código, estão nessa parte :

    Não estou conseguindo raciocinar

    domingo, 30 de março de 2014 21:20
  • É eu tava pesquisando aqui e vi que não da para usar Triggers assim no Windows Phone, e como eu não tenho o SDK do Windows Phone instalado também não tem como eu desenvolver algo...

    Masss, eu achei um projeto simples de exemplo que mostra como customizar um Button:

    Windows Phone 7 Custom Style Button (VBWP7CustomStyleButton) sample in VB.NET, XAML for Visual Studio 2010

    Basicamente, você pega ele como base e modifica as cores e o visual para o que você quer.

    Lembrando que é necessário adicionar uma referência para System.Windows.dll.

    Ah, e se tu nunca trabalhou com Styles e Templates assim, fica tranquilo que demora um pouco mesmo pra pegar a manha, mas é importante e é a única forma de customizar o Button assim como você está querendo.

    Qualquer coisa da um retorno...


    Herbert Lausmann

    domingo, 30 de março de 2014 21:44
  • Herbert, não estou conseguindo não, será que é possível dar propriedades de click em um retângulo, ou em uma imagem?
    domingo, 30 de março de 2014 22:51
  • É melhor você usar um Border. Daí você usa o evento Tap ou MouseLeftButtonDown para executar o código do click.

    Vai ficar uma gambiarra kkk, mas funciona...


    Herbert Lausmann

    domingo, 30 de março de 2014 23:07
  • Tem algum tuto aew?
    domingo, 30 de março de 2014 23:13
  • Tem algum tuto aew?
    Consegui usar o tap, apenas substitui o Click do void pro Tap, mas ficou um delay muito grande no aúdio que o botão faz.
            private void tap1(object sender, RoutedEventArgs e)
            {
                using (var stream = TitleContainer.OpenStream("assets/Audio.wav"))
                {
                    var effect = SoundEffect.FromStream(stream);
                    FrameworkDispatcher.Update();
                    effect.Play();
                }
            }




    domingo, 30 de março de 2014 23:30
  • Tá dando delay porque toda vez que da um Tap tem que fazer o carregamento de um stream. Assim deve melhorar:

            /* Adicione isso no construtor da sua Page:
                
                 soundStream = TitleContainer.OpenStream("assets/Audio.wav"));
                 soundPlayer = SoundEffect.FromStream(soundStream );
    
            */
    
            private System.IO.Stream soundStream;
    
            private SoundEffect soundPlayer;
    
            private void tap1(object sender, RoutedEventArgs e)
            {
                    FrameworkDispatcher.Update();
                    soundPlayer .Play();
            }


    Herbert Lausmann

    segunda-feira, 31 de março de 2014 09:51
  • Melhorou, mas continua com delay
    segunda-feira, 31 de março de 2014 16:39
  • Hum, será que não é um lag do emulador? Você chegou a testar em algum aparelho rodando Windows Phone?

    Herbert Lausmann

    segunda-feira, 31 de março de 2014 21:28
  • Herbert, eu não testo no emulador porquê o meu está bugado, sempre faço o teste direto no meu aparelho.
    segunda-feira, 31 de março de 2014 21:57
  • Amigo, é possível colocar uma checkbox em um xaml e o event handler em outro xaml? como faço isso?, quero que quando a checkbox no xaml1 estiver marcada o status dela (marcada ou desmarcada) fique salva e tipo dentro de uma void também preciso disso ; "If" a Checkbox está marcada "Else" Som 2 aconteça.

    private void Button_Click(object sender, RoutedEventArgs e)
            {
                using (var stream = TitleContainer.OpenStream("assets/Som1.wav"))
                using (var stream2 = TitleContainer.OpenStream("assets/Som2.wav"))
                {
                    var effect = SoundEffect.FromStream(stream2);
                    FrameworkDispatcher.Update();
                    effect.Play();
                }
            }

    segunda-feira, 31 de março de 2014 22:20
  • Aí já avança no nível de complicação. Você quer que o estado da Checkbox, checked ou unchecked, fique salvo após o aplicativo ser finalizado?

    Herbert Lausmann

    terça-feira, 1 de abril de 2014 09:32
  • Quase isso, quero que ele fique salvo após mudar de page.
    terça-feira, 1 de abril de 2014 14:42
  • Pra fazer isso é só usar padrão Singleton. Adicione a classe abaixo ao seu projeto:

    using System;
    using System.ComponentModel;
    
    namespace HL
    {
        internal class AppManager : INotifyPropertyChanged
        {
            public event PropertyChangedEventHandler PropertyChanged;
    
            protected void OnPropertyChanged(string propertyName)
            {
                var handler = PropertyChanged;
                if (handler != null)
                    handler(this, new PropertyChangedEventArgs(propertyName));
            }
    
            private bool _IsChecked;
    
            public bool IsChecked
            {
                get
                {
                    return _IsChecked;
                }
                set
                {
                    _IsChecked= value;
                    OnPropertyChanged("IsChecked");
                }
            }
    
            private AppManager() { }
    
            private static AppManager _Current;
    
            public static AppManager Current
            {
                get
                {
                    if (_Current == null) _Current = new AppManager();
                    return _Current;
                }
            }
        }
    }

    Depois no xaml da page que contem o checkbox você adiciona o seguinte:

    <!-- Adicione a linha abaixo junto as declarações de escopo -->
    xmlns:hl="clr-namespace:HL"
    
    <!-- Abaixo a expressão binding para usar na propriedade IsChecked do Checkbox -->
    IsChecked="{Binding Source={x:Static hl:AppManager.Current}, Path=IsChecked, Mode=OneWayToSource}"

    E aí o if você faz assim:

    if(HL.AppManager.Current.IsChecked)
    {
         //Aqui o código se a checkbox estiver marcada
    }
    else
    {
         //Aqui o código se a checkbox não estiver marcada
    }

    Acho que é isso, fiz de cabeça aqui...


    Herbert Lausmann

    terça-feira, 1 de abril de 2014 15:23
  • O primeiro item que você me deu, é necessário criar uma nova classe assim "HL.cs" né? o "xmlns:hl=..." coloco dentro da <CheckBox/> no xaml, estou certo? só não estou entendendo onde coloco o "IsChecked..."
    terça-feira, 1 de abril de 2014 16:25
  • Sim, o primeiro código você cola em um novo arquivo de código .cs do seu projeto. E o xaml, bom , tem como você postar o xaml da sua page? Aí eu faço as modificações...

    Herbert Lausmann

    terça-feira, 1 de abril de 2014 16:32
  • <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:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:UI="clr-namespace:Microsoft.Advertising.Mobile.UI;assembly=Microsoft.Advertising.Mobile.UI"
        x:Class="Projeto.Sobre"
        FontFamily="{StaticResource PhoneFontFamilyNormal}"
        FontSize="{StaticResource PhoneFontSizeNormal}"
        Foreground="{StaticResource PhoneForegroundBrush}"
        SupportedOrientations="Portrait" Orientation="Portrait"
        mc:Ignorable="d"
        shell:SystemTray.IsVisible="True">
    
        <!--LayoutRoot is the root grid where all page content is placed-->
        <Grid x:Name="LayoutRoot" Background="Transparent">
            <Grid.ColumnDefinitions>
                <ColumnDefinition/>
            </Grid.ColumnDefinitions>
            <Grid.RowDefinitions>
                <RowDefinition Height="768"/>
            </Grid.RowDefinitions>
    
            <!--TitlePanel contains the name of the application and page title-->
            <!--TitlePanel contains the name of the application and page title-->
            <Image HorizontalAlignment="Left" Height="1144" Margin="-388,-158,-464,-218" VerticalAlignment="Top" Width="1332" Source="/Assets/Img1.jpg"/>
    
            <Image HorizontalAlignment="Left" Height="1235" Margin="-376,-412,-379,-55" VerticalAlignment="Top" Width="1235" Source="/Assets/Img2.png" RenderTransformOrigin="0.5,0.5" UseLayoutRounding="False" d:LayoutRounding="Auto">
                <Image.RenderTransform>
                    <CompositeTransform Rotation="-69.518"/>
                </Image.RenderTransform>
            </Image>
            <!--TitlePanel contains the name of the application and page title-->
            <StackPanel Grid.Row="0" Margin="12,17,0,751"/>
    
            <!--ContentPanel - place additional content here-->
            <Grid x:Name="ContentPanel" Margin="12,45,12,0"/>
    
            <TextBlock HorizontalAlignment="Left" Margin="346,731,0,0" TextWrapping="Wrap" Text="Matheus Teles" VerticalAlignment="Top" Height="37" Width="134"/>
            <Image HorizontalAlignment="Left" Height="142" Margin="347,346,0,0" VerticalAlignment="Top" Width="121" Source="/Assets/Img3.png" RenderTransformOrigin="0.5,0.5"/>
            <Rectangle HorizontalAlignment="Left" Height="1036" Margin="-102,-158,-103,-110" Stroke="Black" VerticalAlignment="Top" Width="685">
                <Rectangle.Fill>
                    <SolidColorBrush Color="Black" Opacity="0.5"/>
                </Rectangle.Fill>
            </Rectangle>
            <Button Content="Presa" HorizontalAlignment="Left" Margin="-27,13,0,0" VerticalAlignment="Top" Height="324" Width="331" Foreground="White" BorderBrush="{x:Null}" IsHitTestVisible="False">
                <Button.Background>
                    <RadialGradientBrush>
                        <GradientStop Color="#B2000000" Offset="0.35"/>
                        <GradientStop Color="#00636363" Offset="1"/>
                    </RadialGradientBrush>
                </Button.Background>
            </Button>
            <Button Content="Solta" HorizontalAlignment="Left" Height="324" Margin="51,276,0,0" VerticalAlignment="Top" Width="331" BorderBrush="{x:Null}" Foreground="White" IsHitTestVisible="False">
                <Button.Background>
                    <RadialGradientBrush>
                        <GradientStop Color="#B2000000" Offset="0.33"/>
                        <GradientStop Color="#00636363" Offset="1"/>
                    </RadialGradientBrush>
                </Button.Background>
            </Button>
            <Button Content="Chiado" HorizontalAlignment="Left" Margin="-13,518,0,-18" VerticalAlignment="Top" Width="265" Height="268" BorderBrush="{x:Null}" IsHitTestVisible="False">
                <Button.Background>
                    <RadialGradientBrush>
                        <GradientStop Color="#B2000000" Offset="0.35"/>
                        <GradientStop Color="#00636363" Offset="1"/>
                    </RadialGradientBrush>
                </Button.Background>
            </Button>
            <Button Content="Raspagem" HorizontalAlignment="Left" Margin="187,564,-25,0" VerticalAlignment="Top" Width="318" Height="163" BorderBrush="{x:Null}" IsHitTestVisible="False">
                <Button.Background>
                    <RadialGradientBrush>
                        <GradientStop Color="#B2000000" Offset="0.37"/>
                        <GradientStop Color="#00636363" Offset="1"/>
                    </RadialGradientBrush>
                </Button.Background>
            </Button>
            <TextBlock HorizontalAlignment="Left" Margin="289,80,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Height="183" Width="172" TextAlignment="Right">
            	<Run Text="Aplicativo teste."/>
            	<LineBreak/>
            	<Run Text="2014"/>
            </TextBlock>
            <UI:AdControl ApplicationId="test_client" AdUnitId="Image480_80" HorizontalAlignment="Left" Height="80" VerticalAlignment="Top" Width="480"/>
            <Rectangle Fill="Black" Height="33" Margin="0,-33,0,0" VerticalAlignment="Top"/>
            <Button Content="Chi" HorizontalAlignment="Left" Margin="303,327,-22,0" VerticalAlignment="Top" Width="199" Height="202" BorderBrush="{x:Null}" IsHitTestVisible="False">
                <Button.Background>
                    <RadialGradientBrush>
                        <GradientStop Color="#B2000000" Offset="0.35"/>
                        <GradientStop Color="#00636363" Offset="1"/>
                    </RadialGradientBrush>
                </Button.Background>
            </Button>
            <CheckBox xmlns:hl="clr-namespace:HL" Content="" HorizontalAlignment="Left" Margin="406,254,0,0" VerticalAlignment="Top" Width="62" Checked="CheckBox_Checked" Height="74"/>
            <TextBlock HorizontalAlignment="Left" Margin="262,260,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Height="57" Width="144" Text="Chi junto dos outros toques:"/>
    
        </Grid>
    </phone:PhoneApplicationPage>

    terça-feira, 1 de abril de 2014 17:06
  • É assim o XAML:

    <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:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:UI="clr-namespace:Microsoft.Advertising.Mobile.UI;assembly=Microsoft.Advertising.Mobile.UI"
        xmlns:hl="clr-namespace:HL"
        x:Class="Projeto.Sobre"
        FontFamily="{StaticResource PhoneFontFamilyNormal}"
        FontSize="{StaticResource PhoneFontSizeNormal}"
        Foreground="{StaticResource PhoneForegroundBrush}"
        SupportedOrientations="Portrait" Orientation="Portrait"
        mc:Ignorable="d"
        shell:SystemTray.IsVisible="True">
    
        <!--LayoutRoot is the root grid where all page content is placed-->
        <Grid x:Name="LayoutRoot" Background="Transparent">
            <Grid.ColumnDefinitions>
                <ColumnDefinition/>
            </Grid.ColumnDefinitions>
            <Grid.RowDefinitions>
                <RowDefinition Height="768"/>
            </Grid.RowDefinitions>
    
            <!--TitlePanel contains the name of the application and page title-->
            <!--TitlePanel contains the name of the application and page title-->
            <Image HorizontalAlignment="Left" Height="1144" Margin="-388,-158,-464,-218" VerticalAlignment="Top" Width="1332" Source="/Assets/Img1.jpg"/>
    
            <Image HorizontalAlignment="Left" Height="1235" Margin="-376,-412,-379,-55" VerticalAlignment="Top" Width="1235" Source="/Assets/Img2.png" RenderTransformOrigin="0.5,0.5" UseLayoutRounding="False" d:LayoutRounding="Auto">
                <Image.RenderTransform>
                    <CompositeTransform Rotation="-69.518"/>
                </Image.RenderTransform>
            </Image>
            <!--TitlePanel contains the name of the application and page title-->
            <StackPanel Grid.Row="0" Margin="12,17,0,751"/>
    
            <!--ContentPanel - place additional content here-->
            <Grid x:Name="ContentPanel" Margin="12,45,12,0"/>
    
            <TextBlock HorizontalAlignment="Left" Margin="346,731,0,0" TextWrapping="Wrap" Text="Matheus Teles" VerticalAlignment="Top" Height="37" Width="134"/>
            <Image HorizontalAlignment="Left" Height="142" Margin="347,346,0,0" VerticalAlignment="Top" Width="121" Source="/Assets/Img3.png" RenderTransformOrigin="0.5,0.5"/>
            <Rectangle HorizontalAlignment="Left" Height="1036" Margin="-102,-158,-103,-110" Stroke="Black" VerticalAlignment="Top" Width="685">
                <Rectangle.Fill>
                    <SolidColorBrush Color="Black" Opacity="0.5"/>
                </Rectangle.Fill>
            </Rectangle>
            <Button Content="Presa" HorizontalAlignment="Left" Margin="-27,13,0,0" VerticalAlignment="Top" Height="324" Width="331" Foreground="White" BorderBrush="{x:Null}" IsHitTestVisible="False">
                <Button.Background>
                    <RadialGradientBrush>
                        <GradientStop Color="#B2000000" Offset="0.35"/>
                        <GradientStop Color="#00636363" Offset="1"/>
                    </RadialGradientBrush>
                </Button.Background>
            </Button>
            <Button Content="Solta" HorizontalAlignment="Left" Height="324" Margin="51,276,0,0" VerticalAlignment="Top" Width="331" BorderBrush="{x:Null}" Foreground="White" IsHitTestVisible="False">
                <Button.Background>
                    <RadialGradientBrush>
                        <GradientStop Color="#B2000000" Offset="0.33"/>
                        <GradientStop Color="#00636363" Offset="1"/>
                    </RadialGradientBrush>
                </Button.Background>
            </Button>
            <Button Content="Chiado" HorizontalAlignment="Left" Margin="-13,518,0,-18" VerticalAlignment="Top" Width="265" Height="268" BorderBrush="{x:Null}" IsHitTestVisible="False">
                <Button.Background>
                    <RadialGradientBrush>
                        <GradientStop Color="#B2000000" Offset="0.35"/>
                        <GradientStop Color="#00636363" Offset="1"/>
                    </RadialGradientBrush>
                </Button.Background>
            </Button>
            <Button Content="Raspagem" HorizontalAlignment="Left" Margin="187,564,-25,0" VerticalAlignment="Top" Width="318" Height="163" BorderBrush="{x:Null}" IsHitTestVisible="False">
                <Button.Background>
                    <RadialGradientBrush>
                        <GradientStop Color="#B2000000" Offset="0.37"/>
                        <GradientStop Color="#00636363" Offset="1"/>
                    </RadialGradientBrush>
                </Button.Background>
            </Button>
            <TextBlock HorizontalAlignment="Left" Margin="289,80,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Height="183" Width="172" TextAlignment="Right">
            	<Run Text="Aplicativo teste."/>
            	<LineBreak/>
            	<Run Text="2014"/>
            </TextBlock>
            <UI:AdControl ApplicationId="test_client" AdUnitId="Image480_80" HorizontalAlignment="Left" Height="80" VerticalAlignment="Top" Width="480"/>
            <Rectangle Fill="Black" Height="33" Margin="0,-33,0,0" VerticalAlignment="Top"/>
            <Button Content="Chi" HorizontalAlignment="Left" Margin="303,327,-22,0" VerticalAlignment="Top" Width="199" Height="202" BorderBrush="{x:Null}" IsHitTestVisible="False">
                <Button.Background>
                    <RadialGradientBrush>
                        <GradientStop Color="#B2000000" Offset="0.35"/>
                        <GradientStop Color="#00636363" Offset="1"/>
                    </RadialGradientBrush>
                </Button.Background>
            </Button>
            <CheckBox Content="" IsChecked="{Binding Source={x:Static hl:AppManager.Current}, Path=IsChecked, Mode=OneWayToSource}" HorizontalAlignment="Left" Margin="406,254,0,0" VerticalAlignment="Top" Width="62" Checked="CheckBox_Checked" Height="74"/>
            <TextBlock HorizontalAlignment="Left" Margin="262,260,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Height="57" Width="144" Text="Chi junto dos outros toques:"/>
    
        </Grid>
    </phone:PhoneApplicationPage>


    Herbert Lausmann

    terça-feira, 1 de abril de 2014 17:17
  • Ixe;
    terça-feira, 1 de abril de 2014 22:06
  • Acabei de descobrir que não existe a palavra x:Static no Windows Phone e Silverlight kkk...

    Bom, tira essa parte: IsChecked="{Binding Source={x:Static hl:AppManager.Current}, Path=IsChecked, Mode=OneWayToSource}".

    Aí no evento Checked do checkbox você coloca assim:

    HL.AppManager.Current.IsChecked = true;

    e no evento Unchecked você coloca assim:

    HL.AppManager.Current.IsChecked = false;

    Só recapitulando: dessa forma a classe AppManager vai servir de "ponte" entre os xamls, tornando possível saber se a checkbox que está em outro xaml está marcada ou não...


    Herbert Lausmann

    terça-feira, 1 de abril de 2014 22:30
  • Como assim? coloco assim?
    <CheckBox Content="" IsChecked="HL.AppManager.Current.IsChecked = true" HorizontalAlignment="Left" Margin="406,254,0,0" VerticalAlignment="Top" Width="62" Checked="CheckBox_Checked" Height="74"/> ?
    

    Porquê está dando erro

    terça-feira, 1 de abril de 2014 22:52
  • Não, isso você coloca no código nos eventos. Você já tem um evento que é o CheckBox_Checked, aí falta o outro, e você adiciona os códigos que eu falei...

    Herbert Lausmann

    quarta-feira, 2 de abril de 2014 10:14
  • Você pode criar um CSS para esse botão.

    Atenciosamente, Marcio Nogueira Cardoso Pinto.

    quarta-feira, 2 de abril de 2014 16:58
  • Tem como colocar duas streams em um void?

    Hehehe ;

    private void Button_Click(object sender, RoutedEventArgs e)
            {
                using (var stream = TitleContainer.OpenStream("assets/Som.wav"))
                using (var stream2 = TitleContainer.OpenStream2("assets/Som2.wav"))
    
                {
                    var effect = SoundEffect.FromStream(stream);
                    FrameworkDispatcher.Update();
                    effect.Play();
    
                    if (HL.AppManager.Current.IsChecked)
                    {
                        effect.Play();
                        effect2.Play();
                    }
    
                }
            }


    quarta-feira, 2 de abril de 2014 21:46
  • Sim, faz assim:

            private void Button_Click(object sender, RoutedEventArgs e)
            {
                var stream;
                
                if(HL.AppManager.Current.IsChecked)
                     stream = TitleContainer.OpenStream("assets/Som.wav"));
                else
                     stream = TitleContainer.OpenStream("assets/Som2.wav"));
    
                var effect = SoundEffect.FromStream(stream);
                FrameworkDispatcher.Update();
                effect.Play();
                
                stream.Dispose();
            }


    Herbert Lausmann

    quarta-feira, 2 de abril de 2014 22:01
  • Oxente, tá dizendo "Invalid expression term 'else'" e "; expected" no else também
    private void Button_Click(object sender, RoutedEventArgs e)
            {
                var stream;
               
                if(HL.AppManager.Current.IsChecked = true)
                     stream = TitleContainer.OpenStream("assets/Som1.wav");
                     stream = TitleContainer.OpenStream("assets/Som2.wav");
                else(HL.AppManager.Current.IsChecked = false)
                     stream = TitleContainer.OpenStream("assets/Som1.wav");
    
                var effect = SoundEffect.FromStream(stream);
                FrameworkDispatcher.Update();
                effect.Play();
                
                stream.Dispose();
            }
    //Se a checkbox IsChecked = false, toque apenas Som1

    quarta-feira, 2 de abril de 2014 22:14
  • Oxenteee digo eu! Tu bugou o if else kkkk, e eu também entendi errado...
    Agora entendi o que tu quer fazer:

            private void Button_Click(object sender, RoutedEventArgs e)
            {
                var stream = TitleContainer.OpenStream("assets/Som.wav"));
                var stream2 = TitleContainer.OpenStream2("assets/Som2.wav"));
    
                var effect = SoundEffect.FromStream(stream);
                var effect2 = SoundEffect.FromStream(stream2);
                
    
                FrameworkDispatcher.Update();
    
                if(HL.AppManager.Current.IsChecked)
                {
                     effect.Play();
                     effect2.Play();
                }
                else
                     effect.Play();
    
                stream.Dispose();
    
                stream2.Dispose();
    
            }
    
    


    Herbert Lausmann

    quarta-feira, 2 de abril de 2014 22:26
  • Ixe kkkkk, fiz isso mas parece que não tem uma definição pra OpenStream2, então tirei o OpenStream2 e coloquei apenas OpenStream. Funcionou direitinho :D, agora preciso salvar o state da checkbox.
    quarta-feira, 2 de abril de 2014 22:47
  • Ixe kkkkk, fiz isso mas parece que não tem uma definição pra OpenStream2, então tirei o OpenStream2 e coloquei apenas OpenStream. Funcionou direitinho :D, agora preciso salvar o state da checkbox.

    Você fala, salvar o state do CheckBox e recuperar quando o app iniciar de novo?

    Se for, olha isso:

    Utilizando Isolated Storage no Windows Phone in C# for Visual Studio 2010

    IsolatedStorageSettings Class (System.IO.IsolatedStorage)


    Herbert Lausmann

    quarta-feira, 2 de abril de 2014 23:01
  • Basta ficar salvo entre os xamls, porquê quando abro outro xaml o State reseta para IsUnchecked
    quarta-feira, 2 de abril de 2014 23:14
  • Hum, é só você colocar esse código no construtor da page que o contem o CheckBox:

    checkBox1.IsChecked = HL.AppManager.Current.IsChecked;


    Herbert Lausmann

    quinta-feira, 3 de abril de 2014 13:07
  • Obrigado à vocês dois :), ah.. consegui deixar o background do botão invisível após pressionado, bastou adicionar isso no xml do button <Button Opacity="0"/>
    quinta-feira, 17 de abril de 2014 01:52
  • E mais... Para controlar mais ainda o Background pressionado é lá em Properties > Appearance no Solution Explorer
    quinta-feira, 17 de abril de 2014 02:10