Pergunta

Eu tenho um gráfico no WPF com um monte de etiquetas. O texto nestas etiquetas é carregado e sujeito a mudanças de forma dinâmica. Se eu definir a largura apenas para auto, então estas etiquetas podem se sobrepor, o que torna o texto ilegível.

O suporte gráfico de vários tamanhos, assim que se torna maior, em seguida, as barras são re tamanho e não há mais espaço para o texto. Agora eu quero ajustar o texto para o espaço que está disponível. Se ficar muito pequeno, eu não quero para exibir o rótulo mais (uma dica de ferramenta está disponível, para que o usuário ainda recebe as informações necessárias). Considere a string "Caso 1, blá, blá", provavelmente não há espaço suficiente para exibir a seqüência inteira, mas apenas a primeira palavra. Neste caso, eu quero a string a ser "Caso 1 ..", com .. indicando que há mais algumas informações na dica.

posso determinar o comprimento disponível para a string. Mas como posso determinar o espaço em uma única letra vai demorar? Claro que eu também poderia simplesmente re tamanho a etiqueta, mas, em seguida, que seria apenas cortar a qualquer corda que provavelmente não é útil para o usuário (e olha feio).

Todas as idéias?

Foi útil?

Solução

Se você pode usar TextBlocks em vez de rótulos, então eles têm uma TextTrimming propriedade que vai fazer isso por você, quer o personagem mais próximo ou a palavra mais próxima.


Enquanto você parece feliz com a propriedade TextTrimming, eu vou editar este para acrescentar que o controle TextBox tem uma método GetRectFromCharacterIndex que lhe permitiria descobrir o tamanho na tela de um ou mais caracteres, enquanto as configurações de fonte combinava sua etiqueta. Isto pode ser útil se você quiser cortar em lugares específicos no rótulo, em vez do personagem / palavra mais próxima.

Outras dicas

Não um especialista em WPF, mas eu acho que você vai precisar fazer isso no código, em vez de XAML.

Comece por obter a largura de pixel real do espaço disponível para o texto. Então olha para o conjunto de caracteres, Dot pitch etc. utilizados na extremidade dianteira XAML e de lá calcular o pixel largura exigida por personagem.

Você também pode olhar para mudar os tamanhos de caracteres, bem como reduzir o comprimento da etiqueta.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top