我遇到以下代码的问题:
<Window x:Class="ChangePage.PageSwitcher"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:ChangePage"
Title="ECE Showcase"
WindowState="Maximized">
<Window.Resources>
<local:PageSwitcher x:Name="pageTransitionControl" TransitionType="SlideAndFade"/>
</Window.Resources>
在文件PageSwitcher.xaml.cs后面的代码中,我有以下几行:
pageTransitionControl.TransitionType = whatever;
然而,这会导致以下错误:
当前上下文中不存在名称“pageTransitionControl”
我一直在互联网上搜索几个小时,现在试图找到原因,但还未能弄明白。 Build Action设置为Page,所有文件都保存,我尝试重建,PageSwitcher在ChangePage命名空间,PageSwitcher有一个构造函数。
还有别的我做错了吗?
答案 0 :(得分:4)
您无法为资源指定名称。资源有关键。
<Window x:Class="ChangePage.PageSwitcher"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:ChangePage"
Title="ECE Showcase"
WindowState="Maximized">
<Window.Resources>
<local:PageSwitcher x:Key="pageTransitionControl" TransitionType="SlideAndFade"/>
</Window.Resources>
然后在xaml.cs中:
var pageTransitionControl = (PageSwitcher)Resources["pageTransitionControl"];
pageTransitionControl.TransitionType = whatever;
答案 1 :(得分:0)
该项目存在于Window的资源中,而不存在于Window本身
中您可以将其直接放在Window本身而不是它的资源中,以使您的代码有效,或者为其分配x:Key
而不是x:Name
并使用
(PageSwitcher)this.Resources["pageTransitionControl"]
答案 2 :(得分:0)
似乎无法直接访问后面代码中的资源。您可能需要使用Resources [“pageTransitionControl”]来访问它。