#silverlight
#silverlight
Вопрос:
Возможно ли иметь два элемента управления на одной странице бок о бок в Silverlight? Кажется очень ограничительным иметь только один пользовательский элемент управления только на одной странице.
Я новичок в silverlight. Но, похоже, на каждой странице есть это «UserControl x: Class …» в верхней части главной страницы XAML. Так что, если вы хотите иметь приложение, в котором есть два параллельных элемента управления, влияющих друг на друга?
Хорошо, это не в приложении, это на странице.xaml. Итак, я думаю, чтобы объяснить дальше, позвольте мне спросить это. Возможно ли иметь две страницы в приложении onw?
Я пытаюсь разместить два готовых элемента управления (элемент управления visi и элемент управления vectorlight tree) на одной странице. Формат приложения выглядит примерно так:
Итак, я хочу древовидный вид с левой стороны и элемент управления visi с правой стороны одного приложения. Возможно ли это?
Пример с древовидным представлением содержит этот код пользовательского элемента управления
<UserControl x:Class="TreeViewProgrammatic.Page"
xmlns="http://schemas.microsoft.com/client/2007"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:liquidTreeView="clr-namespace:Liquid;assembly=Liquid.TreeView"
Width="400" Height="300">
а другой элемент управления имеет код пользовательского управления, подобный этому:
<UserControl x:Class="LiveUpdate.Page"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Width="500" Height="340">
есть ли способ разместить их на одной странице.xaml?
Комментарии:
1. Пожалуйста, поясните вашу проблему — например, вы пробовали использовать
Grid
для размещения элементов другие элементы управления? На самом деле, вы говорите о внутри приложения или внутри страницы размещения?2. Можно ли это сделать на странице хостинга? Могу ли я разместить два элемента управления на одной странице хостинга?
Ответ №1:
Мне придется интерпретировать ваши требования. У вас есть две производные от UserControl
, частично содержащие некоторые сторонние элементы управления (на самом деле не имеющие отношения к требованию) и часть вашего собственного кода, чтобы заставить эти элементы управления выполнять то, что вы от них хотите.
Теперь вы хотели бы, чтобы они оба были видны пользователю бок о бок, они взаимодействовали друг с другом, поэтому желательно, чтобы они запускались в одном приложении Silverlight.
Вы назвали их оба «Страница», но затем поместили их в их собственное пространство имен (вероятно, потому, что вы фактически создали два probjects). Итак, первый шаг — создать новое приложение silverlight и поместить их оба в этот же проект, давайте назовем проект «Xarzu1», давайте также переименуем ваши UserControl
производные в TreeViewProgrammatic
и LiveUpdate
, чтобы у нас не было двух элементов управления с бесполезным именем «Страница».
Теперь отредактируйте MainPage.xaml, чтобы он выглядел следующим образом:-
<UserControl x:Class="Xarzu1.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:Xarzu1"
mc:Ignorable="d"
d:DesignHeight="400" d:DesignWidth="800">
<Grid x:Name="LayoutRoot">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="2*" />
</Grid.ColumnDefinitions>
<local:TreeViewProgrammatic />
<local:LiveUpdate />
</Grid>
</UserControl>
Теперь оба ваших элемента управления отображаются рядом.
Комментарии:
1. итак, вы хотите сказать вот что. Есть главная страница, а затем другие xamls являются вложенными страницами? будут ли TreeViewProgrammatic и LiveUpdate иметь свои собственные страницы XAML?
2. IDE не нравится «локальный». Когда я набираю «<local …», редактор жалуется, что он не определен. Как мне это исправить?
Ответ №2:
Думаю, я понимаю, что вы имеете в виду, Page
это сам элемент управления (корневой элемент управления) и может содержать элементы управления; изначально он должен содержать a, Grid
который охватывает размер Page
, это означает, что вы можете поместить элемент управления в Grid
, чтобы использовать все пространство на Page
. Однако мы можем определить Column
s и Row
s внутри Grid
, поэтому рассмотрим это:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="I'm on the left side!" />
<TextBlock Grid.Column="1" Text="I'm on the right side!" />
</Grid>
То же самое относится к пользовательским UserControl
элементам — это само является корневым элементом управления, а добавленные к нему дочерние элементы, это то, что составляет составной элемент управления.
Комментарии:
1. Разве первый элемент управления на странице silverlight не должен быть UserControl?
2. Вы имеете в виду корневой элемент управления, как в дочернем узле управления? ДА. Поместите это в тело элемента управления / страницы, чтобы проверить результаты.
Ответ №3:
Вы получаете какую-либо ошибку при создании двух экземпляров пользовательского элемента управления? Насколько я знаю, на странице silverlight должно быть возможно иметь несколько пользовательских элементов управления. Можете ли вы опубликовать какой-нибудь код о том, что вы пытаетесь сделать?
Комментарии:
1. Это не то. Я хочу иметь два разных элемента управления на одной странице. Возможно ли это?