На моей странице 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"
}
Вы не можете иметь элемент FrameworkElement (элемент управления) в ресурсах. Элемент управления может быть только дочерним элементом другого элемента, то есть вы не можете его повторно использовать, просто поместите его в одно место и это. И если вы поместите его как ресурс, кажется, что он становится дочерним элементом элемента управления, в который вы его положили.
Если вы хотите повторно использовать некоторый элемент управления, сделайте UserControl или Custom/Template Control и используйте его вместо этого. Здесь проводится сравнение между двумя типами элементов управления: link
Ссылки могут быть не идеальными учебниками, но я думаю, что они будут прекрасным началом.
Template
вместоUserControl
может быть здесь решением.