ArgumentException: значение не попадает в ожидаемый диапазон

1

На моей странице XAML я добавил некоторый ресурс

<Page.Resources>
    <Button x:Key="btn" Content="Test Button"></Button>
    ...
</Page.Resources>

В моем файле кода я вызываю этот ресурс, но получаю исключение во время выполнения. Не могу понять, что происходит. Пожалуйста посоветуй

Button btn = this.Resources["btn"] as Button;
if (btn != null)
{
    MyPivotItem.Content = btn; // here I am getting the exception 
                               // "Value does not fall within the expected range"
}
Теги:
exception
windows-phone-8.1

1 ответ

1
Лучший ответ

Вы не можете иметь элемент FrameworkElement (элемент управления) в ресурсах. Элемент управления может быть только дочерним элементом другого элемента, то есть вы не можете его повторно использовать, просто поместите его в одно место и это. И если вы поместите его как ресурс, кажется, что он становится дочерним элементом элемента управления, в который вы его положили.

Если вы хотите повторно использовать некоторый элемент управления, сделайте UserControl или Custom/Template Control и используйте его вместо этого. Здесь проводится сравнение между двумя типами элементов управления: link

Ссылки могут быть не идеальными учебниками, но я думаю, что они будут прекрасным началом.

  • 1
    (+1) Верно. Также Template вместо UserControl может быть здесь решением.
  • 1
    Да, я просто редактировал свой ответ, чтобы включить эту опцию, а также добавить несколько полезных ссылок. :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню