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


Автор: ДобренькийПапаша 22.10.2010, 11:02
Тема "Ламерские вопросы" существует в разделе ".NET для новичков", а почему её у нас в WPF нет? У меня будут возникать ламерские вопросы и не раз. Предлагаю её закрепить. В закреплённых темах, "по сути" такой темы нет.

И вопрос. Вот у меня генерируется такой код при создании WPF-приложения.
Код

<Window x:Class="TestDependentProps.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Grid Name="grid">
        
    </Grid>
</Window>


Почему если я в строке декларации Grid'а пишу "<Grid x:", IntelliSense показывает три свойства? Я так понимаю, что x - это псевдоним для класса MainWindow. Окей. Но я в классе MainWindow этих свойств не вижу. Ещё namespace какой-то отображается на x. Я что-то не понимаю. Что именно?

Автор: zel25b 22.10.2010, 11:16
Не так, х: это псевдоним неймспейса:

Код

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"


По этому свойств и нет в классе.

Автор: ДобренькийПапаша 22.10.2010, 13:01
А перед указанием класса, что делает "x"?

Автор: CYBERDREAM 22.10.2010, 15:10
Из WPF 3.5 Мэтью Макдональда

<Window x:Class="WindowsAppiicationl. Windowl">
Префикс пространства имен х помещает атрибут Class в пространство имен XAML, что означает более общую часть языка XAML. Фактически атрибут Class сообщает ана лизатору XAML. чтобы он сгенерировал новый класс с указанным именем. Этот класс наследуется от класса, именованного элементом XML. Другими словами, этот при мер создает новый класс по имени Windowl, который наследуется от базового класса Window.

Автор: ДобренькийПапаша 26.10.2010, 15:55
Есть грид с тремя столбцами, как динамически положить StackPanel в третий столбец? Не вкурю как сделать не в xaml))) Не пойму как с присоединённым свойством взаимодействовать в коде.

Я даже вижу у МакДоналда примеры типа:
Код

panel.SetValue(Grid.ColumnProperty, 2); //Что это код вообще делает??? Конкретного грида же не указано!


Но не пойму как решить мою задачу.

Автор: Kaerus 26.10.2010, 17:53
Код

private void Button_Click(object sender, RoutedEventArgs e)
{
    StackPanel stack = new StackPanel();
    stack.SetValue(Grid.ColumnProperty, 2);
    Grid1.Children.Add(stack);
}
Грид указывать и не надо - он же родительский элемент, WPF его и так находит
Про вложенные свойства почитай http://msdn.microsoft.com/ru-ru/library/ms749011.aspx

Автор: ДобренькийПапаша 26.10.2010, 20:51
Тфу ты, Add() же надо вызвать у свойства Children. 
Kaerus, спасибо большое smile

Автор: LaChat 7.12.2010, 00:22
надеюсь, тема еще жива...
итак, наболевший ламерский вопрос:
на главной форме есть кнопка и фрейм.
по нажатию кнопки нужно банально загрузить во фрейм содержимое другой страницы.


проект на vb.net


Автор: Kefir 10.12.2010, 01:04
LaChat, http://msdn.microsoft.com/en-us/library/ms602275.aspx

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