Modification de la largeur de la fenêtre lors de l'utilisation de pages dans WPF

StackOverflow https://stackoverflow.com/questions/1621822

  •  06-07-2019
  •  | 
  •  

Question

J'utilise des pages du projet WPF sur lesquelles je travaille actuellement. Cependant, je n'arrive pas à comprendre comment changer la largeur d'une page, ou plutôt la largeur de la fenêtre qui héberge les pages?

La définition de la propriété de largeur de page modifie uniquement la largeur de la page à l'intérieur du cadre de la fenêtre.

Définition du avec de la fenêtre principale ou de la fenêtre de navigation via:

<Application.MainWindow>
    <Window Width="400" />
</Application.MainWindow>

<Application.MainWindow>
    <NavigationWindow Width="400" />
</Application.MainWindow>

Ne fonctionne pas non plus. Alors, comment puis-je définir la largeur de la fenêtre en XAML?

Était-ce utile?

La solution

C’est vraiment pénible: vous avez besoin d’une NavigationWindow capable de naviguer vers la page. Comme cela hérite de Window, vous pouvez définir la hauteur et la largeur de ce conteneur.
-Ouvrir une nouvelle application wpf
-delete la fenêtre standard1 que vous obtenez.

Modifiez ainsi le fichier App.xaml (supprimez l'attribut StartupUri):

<Application x:Class="WpfApplication1.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Startup="Application_Startup">
<Application.Resources>

</Application.Resources>
</Application>

Écrivez le fichier App.xaml.cs ainsi:

    public partial class App : Application
{
    private NavigationWindow navigationWindow;

    private void Application_Startup(object sender, StartupEventArgs e)
    {
        navigationWindow = new NavigationWindow();
        navigationWindow.Height = 200;
        navigationWindow.Width = 100;
        var page = new Page1();
        navigationWindow.Navigate(page);
        navigationWindow.Show();
    }

vous pouvez ajouter une page à partir du menu du projet. Cela vous donnera quelque chose comme:

<Page x:Class="WpfApplication1.Page1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Page1">
<Grid>
    <TextBlock>test</TextBlock>
</Grid>
</Page>

Bonne chance!

Autres conseils

Si vous demandez simplement comment définir les dimensions de la fenêtre, ouvrez simplement le fichier XAML de la fenêtre et définissez les propriétés Largeur / Hauteur:

Window Width="640" Height="480"

Si vous voulez réellement un diff. La taille de la fenêtre par page nécessite davantage de travail. L'immobilier disponible pour une page est contrôlé par la fenêtre hôte. Aucune page ne permet intrinsèquement à une page de demander plus de biens immobiliers à l'hôte, mais vous pouvez créer un support dans votre application iwn en créant des propriétés attachées que votre fenêtre hôte connaît et peuvent appliquer à l'auteur de la page. Lorsque la page se charge, votre hôte peut vérifier si ces propriétés sont définies et ajuster sa propre largeur en conséquence.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top