Auteur de questions
Taille d'une fenêtre en utilisant "VisualState"

Question
-
Bonjour dans un projet WPF j'aimerais pouvoir redimensionner les élément d'un Window en fonction de la propriété
MinWindowWidth de celui-ci. En UWP j'utilise de code :
<VisualStateManager.VisualStateGroups> <VisualStateGroup> <VisualState x:Name="WideState"> <VisualState.StateTriggers> <AdaptiveTrigger MinWindowWidth="1700"/> </VisualState.StateTriggers> <VisualState.Setters> <Setter Target="ExcelPresentPage.FontSize" Value="28"/> <Setter Target="ExcelImg.Height" Value="250"/> <Setter Target="TxtB1.FontSize" Value="28"/> <Setter Target="TxtB2.FontSize" Value="28"/> <Setter Target="GridPresent.Width" Value="1000"/> </VisualState.Setters> </VisualState> <VisualState x:Name="NarrowState"> <VisualState.StateTriggers> <AdaptiveTrigger MinWindowWidth="1000"/> </VisualState.StateTriggers> <VisualState.Setters> <Setter Target="ExcelPresentPage.FontSize" Value="20"/> <Setter Target="ExcelImg.Height" Value="100"/> <Setter Target="TxtB1.FontSize" Value="20"/> <Setter Target="TxtB2.FontSize" Value="20"/> <Setter Target="GridPresent.Width" Value="850"/> </VisualState.Setters> </VisualState> </VisualStateGroup> </VisualStateManager.VisualStateGroups>
Existe-il la même chose pour WPF ?
JF Collombet ® CreateSpecificCulture
Toutes les réponses
-
Bonjour Jean-François,
D'après les recherches que j'ai effectué, il s'avère que oui.
En WPF il faut utiliser la méthode GoToElementState.
Voici le lien : https://msdn.microsoft.com/fr-fr/library/system.windows.visualstatemanager.gotoelementstate(v=vs.110).aspx
Cet article est également utile au cas où la méthode GoToState ne s'exécute pas : http://stackoverflow.com/questions/22273502/cannot-find-gotoelementstate-under-visualstatemanager-visualstatemanager-gotos
J'espère que ces informations vous seront utiles.
Vous pouvez me suivre sur Twitter : https://twitter.com/NordineMhoumadiDownload my NEW FREE application MCP PREPARATION in the Windows 10 Store for preparing your Microsoft Certification or test your skills in Microsoft Technologies;
-
-
J'ai trouvé ce code qui est presque parfait à ceci près que j'aimerais remplacé Path=ActualWidth par Path=MinWidth.
Mais cela ne marche pas...
<Window x:Class="TestDataTrigger.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:TestDataTrigger" mc:Ignorable="d" Title="MainWindow" Height="350" Width="500" x:Name="Page1"> <Grid> <TextBlock Name="TB1"> <TextBlock.Style> <Style TargetType="TextBlock"> <Setter Property="Text" Value="No"/> <Setter Property="FontSize" Value="20"/> <Style.Triggers> <DataTrigger Binding="{Binding ElementName=Page1,Path=ActualWidth}" Value="800"> <Setter Property="Text" Value="yes"/> <Setter Property="FontSize" Value="80"/> </DataTrigger> </Style.Triggers> </Style> </TextBlock.Style> </TextBlock> </Grid> </Window>
JF Collombet ® CreateSpecificCulture