Изменение ширины окна при использовании страниц в WPF - PullRequest
3 голосов
/ 25 октября 2009

Я использую страницы в проекте WPF, над которым я сейчас работаю.Однако я не могу понять, как изменить ширину страницы, а точнее ширину окна, в котором размещены страницы?

Установка свойства ширины страницы только изменяет ширину страницы внутриоконная рама.

Установка с помощью главного окна или окна навигации с помощью:

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

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

Не работает либо.Так как мне установить ширину окна в XAML?

Ответы [ 2 ]

2 голосов
/ 26 октября 2009

Это действительно боль: вам нужно NavigationWindow, которое может перейти на страницу. Поскольку это наследуется от Window, вы можете установить Высота и Ширина для этого контейнера.
-Открыть новую заявку wpf
- удалить стандартное окно1, которое вы получите.

Измените App.xaml таким образом (удалите атрибут 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>

Напишите App.xaml.cs таким образом:

    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();
    }

Вы можете добавить страницу из меню проекта. Это даст вам что-то вроде:

<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>

Удачи!

0 голосов
/ 25 октября 2009

Если вы просто спрашиваете, как установить размеры самого окна, просто откройте XAML-файл окна и задайте свойства Width / Height:

Window Width="640" Height="480"

Если вы действительно хотите diff. Размер окна на страницу, вам нужно сделать еще немного работы. Доступная недвижимость для Страницы контролируется Окном хоста. У Страницы нет собственного способа запросить дополнительную недвижимость у хоста, но вы можете встроить поддержку в свое собственное приложение, создав некоторые прикрепленные свойства, о которых ваше окно хоста знает и которые могут применить автор Страницы. Когда страница загружается, ваш хост может проверить, установлены ли эти свойства, и соответственно отрегулировать собственную ширину.

...