Элементы управления пользовательского интерфейса Silverlight (User Interface Controls) - Динамическое создание элементов управления
ОГЛАВЛЕНИЕ
Динамическое создание элементов управления
В Silverlight 2 все элементы управления Xaml являются изоморфными для объектов общеязыковой среды исполнения (CLR objects). То есть, все что вы можете создать в Xaml вы также можете создать в коде.
Там , где вы можете написать
<Button x:Name="myButton" Content="Hello" />
вы также можете написать
Button myButton = new Button();
myButton.Content = "Hello";
Хотя вы можете создать все ваши элементы управления и объекты в коде, правила хорошего тона гласят о том, что лучше делать это в Xaml. Наиболее явной причиной будет то, что Xaml является очень "инструментарным" - то есть он несет в себе возможность модифицировать инструменты, как Visual Studio и Expression, и тем самым легче масштабировать, изменять и осуществлять поддержку.
С другой стороны, существуют моменты, когда во время разработки вы не знаете количество необходимых объектов, и в таких случаях возможность динамического создания объектов будет просто основным требованием.
Мы можем сделать минимальное изменение в нашей существующей программе и добавить другую кнопку по просьбе пользователя. Добавьте следующую кнопку к файлу Xaml (обратите внимание на то, что мы также называет полотно!)
<Canvas x:Name="myCanvas">
<Button x:Name="myButton" Content="Hello"
Canvas.Left="10" Canvas.Top="10"/>
<Button x:Name="Another" Content="Add Another"
Canvas.Left="10" Canvas.Top="50" />
<CheckBox x:Name="rushOrder" Content="Rush"
Canvas.Left="50" Canvas.Top="10" />
В результате будет добавлена кнопка на страницу, и она будет содержать в себе "Add Another". При нажатии на кнопку нам необходимо добавить другую кнопку к пользовательскому интерфейсу, при этом нам нужно обеспечить данную кнопку своими размерами, позицией и поведением.
Все это мы сделаем в фоновом коде.