2

以下のコードに問題があります。

<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 にはコンストラクターがあります。

私が間違っていることは他にありますか?

4

3 に答える 3

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;
于 2012-09-27T16:43:07.717 に答える
0

アイテムは、ウィンドウ自体ではなく、ウィンドウのリソースに存在します

リソースの代わりにウィンドウ自体に直接配置してコードを機能させるか、のx:Key代わりに割り当ててx:Nameを使用して取得することができます

(PageSwitcher)this.Resources["pageTransitionControl"]
于 2012-09-27T16:44:00.430 に答える
0

コードビハインドのリソースに直接アクセスできないようです。アクセスするには Resources["pageTransitionControl"] を使用する必要がある場合があります。

于 2012-09-27T16:44:14.230 に答える