C # WPF Alongamento / redimensionamento da janela proporcional ao tamanho
Pergunta
Estou ciente do FontStretch propriedade, mas realmente não sei como usá-lo.
O que eu quero é criar uma janela projetado com uma resolução de 200x400 digamos. Em seguida, quando o usuário se estende-lo para 400x800 (ou qualquer outro), eu como toda a janela para esticar / ampliar (no cenário dado, tudo iria dobrar de tamanho) em vez de apenas se movimentar. Seria bom se ele trabalhou com imagens, bem como, mas apenas se as fontes e tamanhos gerais de objeto para fazer isso seria bom.
Existem quaisquer funções embutidas ou bibliotecas 3o partido que fornecem essa funcionalidade?
Solução
Se todo o seu conteúdo tem que ser esticado proporcionalmente incluindo textos, controles e imagens, corrigir o seu tamanho do painel principal para 200x400 e incluí-lo em um painel Viewbox
.
Um problema pode surgir quando o usuário redimensiona a janela de uma forma não proporcional como para 300x400. Em seguida, dependendo das propriedades Viewbox.StretchDirection e esticar você pode ter um layout distorcido ou áreas vazias. Para resolver isso, você pode restrição do tamanho da janela para uma determinada relação.
Outras dicas
Você pode dar uma olhada na implementação do controle ColorPicker aqui: http://livegeometry.codeplex.com/SourceControl/changeset/view/34720# 405553 especialmente MeasureOverride, ArrangeOverride e ComputeScaleFactor. m_scale é o ScaleTransform que é aplicada a todo o controle.
Você também pode usar SizeToContent e LayoutTransform se necessário.