Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > WPF и Silverlight > Самопроизвольное изменение размеров окна


Автор: Compositum 25.5.2009, 21:24
Задал окну содержимое в виде некоего текста:
Код

using System;
using System.Collections.Generic;
using System.Text;
using System.Windows;
using System.Windows.Media;
using System.Windows.Controls;
using System.Windows.Documents;

namespace Wpf_via_Sharp
{
    class SharpCodeWindow : Window
    {        
        public SharpCodeWindow()
        {
            Brush brush = Brushes.Red;
            Background = brush;
            WindowStyle = WindowStyle.SingleBorderWindow;
            WindowStartupLocation = WindowStartupLocation.CenterScreen;
            WindowState = WindowState.Maximized;
            ShowInTaskbar = true;
            ResizeMode = ResizeMode.NoResize;            
            Title = "Window via C# 3.0 code only";

            System.Windows.Media.FontFamily font = new FontFamily("Arial");
            TextBlock txt = new TextBlock();
            txt.Inlines.Add("Это текст ");            
            txt.Inlines.Add(new Italic(new Run(" курсив. ")));            
            txt.Inlines.Add("Это текст ");
            txt.Inlines.Add(new Bold(new Run(" жирный. ")));
            txt.Inlines.Add("Это текст ");
            txt.Inlines.Add(new Bold(new Italic(new  Run(" жирный курсив. "))));
            txt.Inlines.Add(new Underline(new Run("А это подчёркнутый текст.")));
            txt.FontSize = 30;
            txt.Inlines.FirstInline.FontSize = 10;
            txt.Inlines.LastInline.FontFamily = new FontFamily("Times New Roman");
            txt.Inlines.LastInline.FontSize = 20;
            this.Content = txt;
            this.SizeToContent = SizeToContent.WidthAndHeight;
        }                 
    }
}

Поначалу все выглядит именно так, как нужно: размеры окна подогнанны под содержимое. Но стоит только взять окно за заголовок, как все тут же сбивается - окно принимает другие размеры, не вписываясь под содержимое. 
Почему так происходит?

Добавлено @ 21:39
проблема была вызвана наличием строки кода:
Код

WindowState = WindowState.Maximized;

но все равно не ясно - окно ведь не на максимум разворачивалось. почему?
Кроме того, с др. стороны последняя команда (this.SizeToContent = SizeToContent.WidthAndHeight;) разве не должна была перекрыть команду WindowState = WindowState.Maximized; ?

Не пойму поведения...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)