Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

WPF, Grilles et Polygon

1 réponse
Avatar
Alexandre
Bonjour,

Tout d'abord je n'ai pas trouvé de newsgroup pour WPF. Si un existe, auquel
cas je m'excuse par avance de poster mon messsage ici.
Je suis un pur débutant avec le XAML et WPF. Les possibilités qu'il offre
sont vraiment exceptionnelles, c'est pourquoi j'ai décidé de faire le pas.

J'essayes de faire des choses simples avec le XAML, mais je n'y arrives pas
ou alors je n'utilise pas la bonne méthode. J'ai pourtant cherché sur
beaucoup d'articles traitant de WPF.

Alors voilà.
J'ai une Fenetre de 800*600
J'ai défini une grille avec 3 colonnes et 2 lignes avec ces dimensions :

Cln1=200*
Cln2=20
Cln3=580*
Row1=30
Row2=570*

J'ai bien comprit que les étoiles indiquait que les valeurs saisie étaient
des valeurs proportionelles par rapport aux dimention du contenant ( la
fenetre dans mon cas )

Maintenant j'aimerais déssiner une forme simple ( par exemple un losange)
grâce à un objet polygon, mais que les dimensions de ce polygone change en
fonction de la taille de la fenetre ( dimention proportionelles donc)

J'ai essayé de définir via la propriété "Points" de l'objet polygon, les 4
points dessinant mon losange, mais lorsque la fenêtre est agrandie, la
grille elle est bien agrandie de facon proportionelle, mais les dimension du
losange restent celle que j'ai définie dans le code XAML.

Je ne tiens absolument pas à redimentionner mon losange par le code behind
car dans ce cas là je ne vois plus l'interet d'utiliser XAML, et donc je
préfère repasser en winform.

Voici le code XAML de ma fenêtre :

<Window x:Class="Main_Window" Height="600" Width="800"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" AllowsTransparency="True" Background="transparent"
WindowStyle="None">
<Grid Name="Native_Grid" Background="Transparent" Margin="0,0,0,0" >
<Grid.RowDefinitions>
<RowDefinition Height="30*" />
<RowDefinition Height="570*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="200*" />
<ColumnDefinition Width="20" />
<ColumnDefinition Width="580*" />
</Grid.ColumnDefinitions>
<Polygon Points="0,0 200,0 200,600 0,600" Fill="Black"
Grid.RowSpan="2" Margin="0,0,0,0"></Polygon>
<Polygon Points="0,0 20,30 0,30" Grid.Column="1" Fill="Black"
Margin="0,0,0,0"></Polygon>
<Button Opacity="1" Name="Button1" Height="30" Width="50"
HorizontalAlignment="Left" Grid.Column="2" Margin="166,164,0,0" Grid.Row="1"
VerticalAlignment="Top">Youpi</Button>

</Grid>
</Window>

Au final je cherches donc à dessiner n'importe quelle forme et que celle-ci
se redimentionne proportionellement aux redimentionnement de la fenetre.

Merci d'avance pour vos réponses !

1 réponse

Avatar
Jérémy Jeanson
Une solution simple pourrait être de mettre ton dessin en ressource de
ta window puis d'utiliser cette ressource comme Brush de l'objet que tu
veux redimensionner, et indiquer que ce Brush ne se répète pas, mais
qu'il doit remplir l'ensemble de ton objet.
--
Jérémy JEANSON
MCP
http://jeremy.blogdns.net