Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Как избавиться от свойства


Автор: Ptica_Oz 4.10.2010, 21:27
Здравствуйте все.
Разрабатываю свой элемент управления. Хочу чтобы он был фиксированного размера, но когда его кидаю на форму для тестирования у него всё равно есть свойства Height и Width, которые можно изменить. Подскажите как от них избавиться?

Автор: CYBERDREAM 4.10.2010, 22:09
Код

public class ControlC:Control
    {
        private int _width, _height;
        public new Int32 Width
        {
            get { return _width; }
            set { }
        }

        public new Int32 Height
        {
            get { return _height; }
            set { }
        }
        public ControlC()
        {
            _width = 300;
            _height= 300;
            BackColor = Color.Red;
        }
    }


а если так?

либо http://bytes.com/topic/c-sharp/answers/272798-how-disable-resizing-custom-user-control

Автор: Ptica_Oz 4.10.2010, 22:39
Уточню: разрабатывается WPF компонент. В идеале хотелось бы что бы свойств Height и Width вообще не было...

Автор: Kaerus 4.10.2010, 23:31
Цитата(Ptica_Oz @ 4.10.2010,  22:39)
Уточню: разрабатывается WPF компонент. В идеале хотелось бы что бы свойств Height и Width вообще не было...

Это невозможно, но можно попробовать так
Код

<Style TargetType="{x:Type local:CustomControl1}">
    <Setter Property="MinWidth" Value="128" />
    <Setter Property="MaxWidth" Value="128" />
    <Setter Property="MinHeight" Value="128" />
    <Setter Property="MaxHeight" Value="128" />
    <Setter Property="Template">
    . . .
    </Setter>
</Style>

вместо 128 твой размер. Либо можно в сторону MeasureOverride & ArrangeOverride покапать

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