2012-04-17 1 views
0

Я работаю над собственной библиотекой, но у меня возникла проблема. У меня есть следующий код, чтобы поставить свою полилинии на странице WindowsPhone:Место Полилиния на вершине всего

System.Windows.Deployment.Current.Dispatcher.BeginInvoke(() => 
{ 
    graph.AddSinglePoint(x); 
    graph.Update(); 
    LayoutRoot.UpdateLayout(); 
}); 

LayoutRoot.Children.Add(graph.line); 

(его в начинают Invoke, потому что я сделать это внутри timer_tick пустоте, которая называется тайм-аут таймера (мс)

Единственная проблема с этим - когда я хочу, чтобы мой график был помещен ниже в форме (в примере y = 300 + фактическое значение Y). Он подталкивает все на мою форму до 300. То, что я имел в виду, было следующим:

Планировка: Название страницы

Некоторых заправочные (ListBoxes, флажки и т.д.)

Внизу: Мой график (ломаный)

Как acomplish что-то подобное?

ответ

2

Если вы используете Grid для LayoutRoot вы должны установить строку и столбец вашего графика:

Grid.SetRow(graph,2); 
    Grid.SetColumn(graph,...); 

лично я сделал бы это по-другому и использовать отдельный элемент управления для моего графика, например Canvas, так раскладка выглядит следующим образом:

Layout: Page Title 
Some filling (listboxes, checkboxes, etc) 
At the bottom: Canvas 

затем добавить график в Canvas вместо LayoutRoot. Вы можете позиционировать элементы управления в Canvas по абсолютным координатам через свойства зависимостей Top и Left.

2

Вам необходимо узнать о Silverlight Layout System, расположение каждого элемента на экране определяется панелью, в которой он находится. Некоторые панели, такие как StackPanel, «стекают» каждого из своих детей, так что никакие два элемента не могут перекрываться. В то время как другие, такие как Grid и Canvas, допускают перекрытие.

+0

Спасибо за быстрый ответ. Я реализовал подход pivotnig и это отлично работает .. –

 Смежные вопросы

  • Нет связанных вопросов^_^