terça-feira, 20 de março de 2012

Custon Button WP7

Salve galera!! Olhando a data de criação do blog, e a quantidade de postagens existêntes, posso afirmar que não cumpri com o prometido =/. Mas nada está perdido, agora pretendo dedicar um tempo especial para postar novidades e coisas interessantes. Agora de verdade =)
Como não era de de se esperar, vou postar um conteúdo sobre Windows Phone 7 ou conhecido WP7. Alguns dias atrás quebrei a cabeça para fazer um botão personalizado com as seguintes regras.
 
- Deve possuír uma imagem de fundo;
- Quando o botão é pressionado, sua imagem de fundo deve ser alterada;
- Quando o botão é liberado, sua imagem de fundo original deve voltar ao estado original.

E como era de se esperar, foi muito mais facil do que eu imaginava. Tive esse problema, pois estava migrando uma App Androd para WP7. Então, vou postar aqui o componente personalizado na versão android, e depois o equivalente na versão WP7.


res/drawable-hdpi/custon_button.xml - Componente customizado



    




Uso do componente - Agora podemos usar nosso componente em uma View do Android.

 



CustonButton.cs - Classe que controla o componente


using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;

namespace MobileMind.Control
{
    /// 
    /// ImageButton control
    /// 
    public class ImageButton : Button
    {
        /// 
        /// Default Constructor
        /// 
        public ImageButton()
        {
            DefaultStyleKey = typeof(ImageButton);
        }

        /// 
        /// Normal State Image Property Dependency
        /// 
        public static readonly DependencyProperty ImageProperty = DependencyProperty.Register("Image", typeof(ImageSource), typeof(ImageButton), null);

        /// 
        /// Normal State Image Property
        /// 
        public ImageSource Image
        {
            get { return (ImageSource)this.GetValue(ImageProperty); }
            set { this.SetValue(ImageProperty, value); }

        }

        /// 
        /// Pressed State Image Property Dependency
        /// 
        public static readonly DependencyProperty PressedImageProperty = DependencyProperty.Register("PressedImage", typeof(ImageSource), typeof(ImageButton), null);

        /// 
        /// Pressed State Image Property
        /// 
        public ImageSource PressedImage
        {
            get { return (ImageSource)this.GetValue(PressedImageProperty); }
            set { this.SetValue(PressedImageProperty, value); }

        }
        
    }
}


App.xaml -  Template do componente














Visible






Collapsed


























Uso do componente Agora podemos usar nosso componente personalizado em alguma Page do WP7.

MainPage.xaml







Basta adaptar para seu código e usar!

Era isso pessoal. Espero que esse exemplo ajude alguém! Até a próxima.

Nenhum comentário:

Postar um comentário