Modifica della larghezza della finestra quando si utilizzano le pagine in WPF
-
06-07-2019 - |
Domanda
Sto usando le pagine del progetto WPF su cui sto attualmente lavorando. Tuttavia, non riesco a capire come modificare la larghezza di una pagina, o meglio, la larghezza della finestra che ospita le pagine?
L'impostazione della proprietà larghezza pagina modifica solo la larghezza della pagina all'interno della cornice della finestra.
Impostazione del con della finestra principale o della finestra di navigazione tramite:
<Application.MainWindow>
<Window Width="400" />
</Application.MainWindow>
<Application.MainWindow>
<NavigationWindow Width="400" />
</Application.MainWindow>
Neanche funziona. Quindi, come posso impostare la larghezza della finestra in XAML?
Soluzione
È davvero una seccatura: hai bisogno di una finestra di navigazione in grado di navigare alla pagina. Poiché questo eredita da Window, puoi impostare Altezza e Larghezza su questo contenitore.
-Apri una nuova applicazione wpf
-elimina la finestra standard1 che ricevi.
Modifica App.xaml in questo modo (elimina l'attributo 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>
Scrivi App.xaml.cs così:
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();
}
puoi aggiungere una pagina dal menu del progetto. Questo ti darà qualcosa del tipo:
<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>
Buona fortuna!
Altri suggerimenti
Se stai solo chiedendo come impostare le dimensioni della finestra stessa, apri il file XAML della finestra e imposta le proprietà Larghezza / Altezza:
Window Width="640" Height="480"
Se vuoi davvero un diff. Dimensioni della finestra per pagina, devi fare un po 'più di lavoro. L'immobiliare disponibile per una Pagina è controllato dalla Finestra host. Non esiste un modo intrinseco per una Pagina di richiedere più beni immobili dall'host, ma è possibile integrare il supporto nella propria app iwn creando alcune proprietà annesse che la finestra dell'host conosce e che possono essere applicate dall'autore della Pagina. Quando la pagina viene caricata, l'host può verificare se queste proprietà sono impostate e regolare la propria larghezza di conseguenza.