Tag Archives: Loja Windows

Rápido e fácil: Definir o tamanho dos itens em uma caixa de listagem em uma loja de Windows App

Estou criando em um Windows App Store, Quero mostrar ao usuário várias mensagens informativas.  Eu escolhi um ListBox como a ferramenta para mostrá-lo para que eles podem rolar nas coisas deles e muito bom. 

As mensagens são informativas somente, Então não há nenhuma necessidade de fornecer tudo o que mais espaço em branco ao redor deles, desde que o usuário nunca pode selecioná-los para alguma coisa.  O comportamento padrão do ListBox fornece uma quantidade substancial de enchimento e queria se livrar dele.  Bem.... Não pode fazer esse tipo de coisa na ListBox diretamente.  NO ENTANTO, Você pode fazê-lo para os itens que você adicionar:

        privada privatevoid AddGameStateLogMessage(Cadeia de caracteres Amensagem)
        {
            TextBox t = Novo TextBox();
            t.Text = GameStateCounter     + ": " + Amensagem;
            t.TextWrapping = TextWrapping.Wrap;
            t.MinWidth = 400;
            Espessura thisPadding = Novo Espessura(5, 0, 5, 0);
            t.Padding = thisPadding;
            t.FontSize = 12;

            ListBoxItem li = Novo ListBoxItem();
            Li.Conteúdo = t;
            Li.MaxHeight = 25;
            thisPadding = Novo Espessura(5, 0, 5, 0);
            Li.Preenchimento = thisPadding;

            GameStateLog.Items.Insert(0,Li);
        }

no exemplo acima, Eu estou criando um TextBox e definindo sua fonte, seu preenchimento, etc.

Próximo, Eu criar um ListBoxItem e definir seu conteúdo para a caixa de texto formatada.

Finalmente, Para inserir o ListBoxItem para o ListBox.  (Quero mostrar as mensagens mais recentes no topo da lista, Portanto, a inserção(0,Li) em vez de um simples adicionar() invocação.).

Vai ser-isso aprimorando um pouco antes, estou muito feliz com o comportamento de ListBox, mas o padrão mostrado acima tem sido muito proveitoso.  Espero que outra pessoa acha útil.

</fim>

undefinedSubscreva ao meu blog.

Siga-me no Twitter em http://www.twitter.com/pagalvin

Definindo a altura da ListboxItems em uma caixa de listagem programaticamente para App Store do Windows

Estou trabalhando em um aplicativo de armazenamento do windows e uma das coisas que quero fazer no app é exibir um log que mostra mensagens de status e outros petiscos informativos como o utilizador trabalha as coisas. Para este fim., Eu adicionei um ListBox como segue:

<ListBox x:Nome ="GameStateLog" HorizontalAlignment ="Centro" Altura ="221" VerticalAlignment ="Início" Largura ="499" Preenchimento ="0" FontSize ="10">

 

O código c# para preencher o listbox em tempo de execução foi ao longo das linhas de:

GameStateLog.Items.Insert(0, GameStateCounter     + ": Novo estado do jogo: esperando por jogador 1 nome");

Isso funcionou bem o suficiente, mas a interface do usuário mostrou uma quantidade louca de preenchimento ao redor as mensagens individuais como eles foram adicionados. Isso faz sentido, se deseja que os usuários finais para ser capaz de selecionar esses itens, mas não faz sentido quando eu só quero mostrar uma série de duração das mensagens de log-os usuários não selecionar estas, apenas visualizá-los. Era estranhamente difícil de encontrar uma maneira fácil de fazer isso e, possivelmente,, a maneira que eu encontrei não é necessariamente "fácil", mas eu consegui trabalhar Okey. O insight chave veio nesta postagem here (http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/c4a6f694-bd46-4779-ab83-b1c2fcb2397c) de Bob Relyea. Em vez de adicionar seqüências de caracteres para a coleção de itens no ListBox, Adicionar ListBoxItems. Adicionando uma cadeia de caracteres, o ListBox foi criando sua própria ListBoxItem por conta própria. Eu não era capaz de afetar qualquer coisa sobre esse ListBoxItem após o fato. O novo código é:

        privada privatevoid AddGameStateLogMessage(Cadeia de caracteres Amensagem)
        {
            ListBoxItem li = Novo ListBoxItem();
            Li.Conteúdo = mensagem;
            Li.MaxHeight = 25;

            Espessura thisPadding = Novo Espessura(5, 0, 5, 0);
            Li.Preenchimento = thisPadding;

            GameStateLog.Items.Insert(0,Li);
        }

 

Aqui estou criando do ListBoxItem e inseri-los. Eu removi o preenchimento em excesso, definindo sua espessura.

Isso é muito flexível que eu pretendo fazer alguma cor de codificação para destacar determinados tipos de mensagens e adicionando diretamente ListBoxItems eu chegar ao estilo-los como quiser.

Espero que isso ajude alguém!

</fim>

undefinedSubscreva ao meu blog.

Siga-me no Twitter em http://www.twitter.com/pagalvin