Фокус на холсте, перекрывающем список в WP7 - PullRequest
0 голосов
/ 07 февраля 2011

У меня здесь ситуация. У меня есть страница, содержащая ListBox. ListBox заполняется Элементами, если он может извлечь данные из веб-службы. Теперь, когда у пользователя нет подключения к сети на его телефоне или веб-служба не отвечает обратно со статусом Ok, я хочу показать пользователю всплывающее окно с опцией «Повторить» или выбрать «ОК», чтобы остаться на той же странице ( хотя звучит глупо). Теперь для этого я использовал Canvas:

<Canvas Name="Nonetwork" Height="150" Width="280" HorizontalAlignment="Center" VerticalAlignment="Center" Background="DodgerBlue" Visibility="Collapsed" Margin="111,160,92,160" >
    <TextBlock VerticalAlignment="Top" Height="120" Width="280" Text="No Network is currently availabe" TextAlignment="Center" TextWrapping="Wrap" Foreground="White" FontSize="28" />
    <Button Margin="30, 80" Height="60" Width="100" Content="OK" FontSize="18" Click="Ok_Click"/>
    <Button Margin="150, 80" Height="60" Width="100" Content="Retry" FontSize="18" Click="Retry_Click"/>                
</Canvas>

Ну, как и многие из вас, опытные ребята, догадались бы, холст скрыт внутри списка и недоступен, когда нет сетевого подключения. Итак, у меня есть пустая страница с холстом, но пользователь не может нажать «ОК» или «Повторить». Пожалуйста, помогите

Пожалуйста, дайте мне знать, если есть какой-либо другой подход к решению этой проблемы. Я попробовал всплывающее окно, но не могу перейти на главную страницу из всплывающего окна, так как это страница управления пользователем. Любая помощь высоко ценится

Ответы [ 3 ]

1 голос
/ 07 февраля 2011

Ну, я разместил свой Canvas под ListBox, и проблема была решена.Я не знал, что расположение элементов управления в XAML будет иметь такой большой эффект ...

0 голосов
/ 07 февраля 2011

То, что вы делаете, является неправильной практикой и совсем не рекомендуется.

ChildWindow - это класс, который вы должны использовать для отображения диалогов такого типа.

Использование Popup - это еще один подход, который вы можете использовать.

ПРИМЕЧАНИЕ : я знаю, что самым простым подходом было бы использование MessageBox.Show(), но это создало бы всплывающее окно из рамки silverlight и не позволяло бы использовать темы / стили и другие настройки.

0 голосов
/ 07 февраля 2011

Порядок, в котором элементы отображаются в Silverlight, определяется, во-первых, тем, где они появляются в иерархии визуальных объектов, и, во-вторых, их свойством ZIndex.

У Canvas есть третье вложенное свойство с именем ZIndex, которое можно использовать для переопределения слоев по умолчанию.Хотя это присоединенное свойство Canvas.ZIndex определяется классом Canvas, на самом деле оно работает с панелями любого типа.

Также можно попробовать свойство Canvas.ZIndex:

Canvas.ZIndexПрисоединенное имущество

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...