Два пользовательских элемента управления на страницу в silverlight?

#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. Это не то. Я хочу иметь два разных элемента управления на одной странице. Возможно ли это?