Participe conosco da Trilha WinPhone / Win8 Dev no TDC2014 – São Paulo
Salve pessoas! O TDC 2014 São Paulo está aí e mais uma vez vou coordenar a trilha de Windows Phone/Windows 8 Store Apps. Este ano estou junto com o também MVP Alexandre Chohfi e preparamos uma trilha bem legal pra vocês. Reuniremos o melhor conteúdo para você ficar antenado no que há de mais atual e […]
Minha participação no TDC 2012 – Florianopolis
Finalmente encontrei tempo para escrever um pouco sobre o TDC2012 em Florianópolis. O evento ocorreu entre os dias 24 e 26 de Agosto, na Faculdade Estácio de Sá. Foram mais de 2600 inscritos nas 24 trilhas com assuntos de .net a arduino fazendo deste um dos melhores eventos do Brasil para conhecer novas tecnologias e […]
Caça-Palavras no Windows 8
Estou meio sumido daqui, mas é por um bom motivo: acabei de lançar uma versão do Caça-Palavras para o Windows 8. Deu um bom trabalho, mas valeu muito a pena. Agora qualquer jogador em um Windows 8 (tablet ou desktop) vai poder se juntar aos 60 mil que já jogam no Windows Phone. No início […]
Colocando focus automaticamente em controles no Winrt / Windows8
Que falta faz o FocusManager, né? Fui tentar colocar focus no primeiro campo de um formulário no WinRt e não achei o dito cujo. Para contornar a situação, vamos criar uma attached property que da conta do recado:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
public static class Focus { public static readonly DependencyProperty MappingsProperty = DependencyProperty.RegisterAttached("HasFocus", typeof(bool), typeof(Focus), null); public static bool GetHasFocus(DependencyObject dp) { return GetControl(dp).FocusState != FocusState.Unfocused; } public static void SetHasFocus(DependencyObject dp, bool value) { Control control = GetControl(dp); if(!value) return; control.Loaded += (sender, args) => control.Focus(FocusState.Programmatic); } private static Control GetControl(DependencyObject dp) { var control = dp as Control; if (control == null) { throw new ArgumentException("HasFocus can be only used in Controls"); } return control; } } |
Esta attached property simplesmente pega o controle associado a ela e baseado no booleano especificado, chama […]
Migrando seu App do Windows Phone para o Windows 8 RC – WebClient
Procurando o WebClient? Pois é, ele também não está presente no WinRT. No Windows Phone podemos fazer chamadas web assim:
1 2 3 4 5 6 7 8 9 10 |
public void MakeWebRequest() { WebClient client = new WebClient(); client.DownloadStringCompleted += new DownloadStringCompletedEventHandler(client_DownloadStringCompleted); client.DownloadStringAsync(new Uri("http://www.bing.com")); } void client_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e) { string data = e.Result; // faça algo com os dados } |
No WinRT, temos que fazer uma chamada assíncrona usando os termos async e await, adicionados na última versão do .net. Fica assim:
1 2 3 4 5 |
public async Task<string> MakeWebRequestAsync() { HttpClient http = new System.Net.Http.HttpClient(); HttpResponseMessage response = await http.GetAsync("http://www.bing.com"); return await response.Content.ReadAsStringAsync(); } |
Bem menos código, né? Se você ainda não aprendeu sobre sync/await, […]
Migrando seu App do Windows Phone para o Windows 8 RC – StringFormat
No Caça-Palavras, eu faço bastante uso da propriedade StringFormat, presente no TextBlock. [xml] <TextBlock Text=”{Binding Words.Count, StringFormat=’Encontradas: {0}’}” /> [/xml] Infelizmente isso foi cortado no Windows 8. Para atingir o mesmo efeito de forma simples, criei um Converter que resolve o problema. Segue o código abaixo:
1 2 3 4 5 6 7 8 9 10 11 12 |
public class StringFormatConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, string language) { if (parameter == null) { return value; } return String.Format((String)parameter, value); } public object ConvertBack(object value, Type targetType, object parameter, string language) { return value; } } |
E no seu Xaml: [xml] <TextBlock Text=”{Binding Words.Count, […]
Migrando seu App do Windows Phone para o Windows 8 RC – DependencyObjectCollection
Se você utiliza a classe DependencyObjectCollection para criar listas de DependencyObjects em seus controles no Windows Phone, vai sentir falta dela no Windows 8. Eu a utilizo no Wp7Tools para fazer uma attached property que mapeia eventos da View para actions no ViewModel, desacoplando os dois.
Migrando seu App do Windows Phone para o Windows 8 RC – WrapPanel
Esses dias comecei a portar meu jogo Caça-Palavras do Windows Phone para o novo Windows 8. Essa migração é uma excelente oportunidade para todos os desenvolvedores que já possuem aplicações no Windows Phone Marketplace atingirem um público infinitamente maior.
Como renderizar itens diferentes em ListBoxes utilizando um DataTemplateSelector
DataTemplateSelector é uma classe conhecida de quem trabalha com WPF e Xaml. Ela permite que você possa escrever alguma lógica para escolher qual data template um objeto vai usar quando fizer binding do mesmo em um ListBox. Como a lógica é aplicada para cada objeto da lista, você pode ter um list box com itens […]