J'ai une application WPF où l'interface utilisateur doit être mise à l'échelle de manière à devenir plus grande si les fenêtres sont apportées à l'image. Dans l'un des dialogues, j'ai besoin de présenter une liste d'éléments à un utilisateur et que l'utilisateur doit cliquer sur l'un d'entre eux. La liste contiendra de 1 à environ 15-20 articles. Je veux que la taille de la police de chaque élément individuel soit aussi grosse que la taille de la police des autres éléments de la liste, mais en même temps, je souhaite que la taille de la police augmente si la fenêtre est agrandie.
, mon code de test ressemble au ci-dessous. p> si l'application est démarrée et que la fenêtre est faite large, tout va bien. Si la largeur de la fenêtre est diminuée, la taille de la police du texte Je ne veux pas donner la taille des polices spécifique des commandes car certaines personnes vont fonctionner sur des écrans à basse résolution tels que 640x480 et D'autres utiliseront des grandes glissades plus grandes. P> J'ai essayé de modifier mon code aux éléments suivants: P> Tester plus longue chaîne code> est faite plus petite, mais la taille de police de
t code> et
test code> reste le même. Je comprends pourquoi cela se produit - la vue ci-vise augmentera le contenu de sa taille maximale. Ce que je veux savoir, c'est de la méthode que je devrais utiliser pour résoudre ce problème. P>
<ScrollViewer>
<Viewbox>
<ItemsControl>
<Button>Test 2</Button>
<Button>Test 3</Button>
<Button>Test 4 afdsfdsa fds afdsaf</Button>
<Button>Test 5</Button>
<Button>Test 5</Button>
<Button>Test 5</Button>
<Button>Test 5</Button>
<Button>Test 5</Button>
</ItemsControl>
</Viewbox>
</ScrollViewer>
4 Réponses :
Essayez ceci: Rendez vos éléments de texte tels que vous le feriez tout autre temps: P>
textblock code> s contenu dans un "itemsControl"? Li>
-
listbox code>? li>
ul>
Placez l'ensemble du shebang dans une liste de visualité code> et définissez-la à la balance appropriée à vos besoins. Recherchez des propriétés d'échelle horizontale, verticale ou combinée. P>
J'ai mis à jour mon post. Voir sous "Modifier". En bref, si j'utilise un textblock plutôt qu'un bouton, je perds l'interface "Bouton" -Utilisateur (effet de clic et ainsi de suite). Si j'utilise un bouton et placez-le à l'intérieur d'une zone de vue, tout le bouton - y compris sa bordure - sera redimensionné. Je ne veux pas de bordure de bouton de 1 cm juste parce que le programme est maximisé.
Cette solution de contournement peut aider:
<ScrollViewer> <Grid> <Grid.RowDefinitions> <RowDefinition Height="30*" MinHeight="30"/> <RowDefinition Height="30*" MinHeight="30"/> <RowDefinition Height="30*" MinHeight="30"/> </Grid.RowDefinitions> <Button Grid.Row="0" MaxHeight="100"> <Viewbox> <TextBlock Width="{Binding ElementName=tbLonger,Path=ActualWidth}">T</TextBlock> </Viewbox> </Button> <Button Grid.Row="1" MaxHeight="100"> <Viewbox> <TextBlock Width="{Binding ElementName=tbLonger,Path=ActualWidth}">Test</TextBlock> </Viewbox> </Button> <Button Grid.Row="2" MaxHeight="100"> <Viewbox> <TextBlock Name="tbLonger">Test Longer String</TextBlock> </Viewbox> </Button> </Grid> </ScrollViewer>
Je crois que le code de l'OP n'a pas de problème avec la largeur des boutons, ils ont toutes la même longueur lorsque la fenêtre devient plus petite, mais il veut que les fontimes soient les mêmes (ou c'est ce que j'implique). Donc, la liaison devrait être avec la fontine du texte le plus long.
Le moyen le plus simple est probablement de construire un décorateur pour faire le travail. Vous pouvez appeler cela "verticalstretchdecorator" ou quelque chose comme ça.
Voici comment il serait utilisé: p> i utilisé Il serait mis en œuvre quelque chose comme ceci: p> Uniformigride code> au lieu de
grille code>, mais cela fonctionnerait de la même manière avec
grille code>. p>
Ce code ne compile pas n'importe quoi. Mesure () renvoie le vide et il n'y a pas de valeur de retour de Measeverride ()
J'ai dû faire une demande indépendante de résolution et l'avons fait avec cette réponse ici: Conseils sur la résolution Développer une application indépendante P>
avec cette application est à la mise à l'échelle (ou à zoomer), en fonction de la résolution. P>
Fonctionne bien pour moi si: / i.imgur.com/gxo14vb.gifv