Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# VisualStateManager.GoToState返回false,并且视觉状态未更改_C#_Windows Store Apps_Winrt Xaml_Windows 8.1_Visualstatemanager - Fatal编程技术网

C# VisualStateManager.GoToState返回false,并且视觉状态未更改

C# VisualStateManager.GoToState返回false,并且视觉状态未更改,c#,windows-store-apps,winrt-xaml,windows-8.1,visualstatemanager,C#,Windows Store Apps,Winrt Xaml,Windows 8.1,Visualstatemanager,我有这个XAML代码: <Button x:Name="btnStartRecord" Visibility="Collapsed"> <Button.BorderBrush> <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> <GradientStop Color="Black"

我有这个XAML代码:

       <Button x:Name="btnStartRecord" Visibility="Collapsed">
            <Button.BorderBrush>
                <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                    <GradientStop Color="Black" Offset="0"/>
                    <GradientStop Color="#FFF3883E" Offset="1"/>
                </LinearGradientBrush>
            </Button.BorderBrush>
        </Button>
        <Button x:Name="btnStopRecord" Visibility="Collapsed">
            <Button.BorderBrush>
                <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                    <GradientStop Color="Black" Offset="0"/>
                    <GradientStop Color="#FFF3883E" Offset="1"/>
                </LinearGradientBrush>
            </Button.BorderBrush>
        </Button>

<VisualStateManager.VisualStateGroups>
            <VisualStateGroup x:Name="MainStates">
                <VisualState x:Name="RecordIconState">
                    <Storyboard>
                        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="btnStartRecord" Storyboard.TargetProperty="(UIElement.Visibility)">
                            <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Visible"/>
                            <!--<DiscreteObjectKeyFrame KeyTime="0" Value="Visible"/>-->
                        </ObjectAnimationUsingKeyFrames>
                        <!--<ObjectAnimationUsingKeyFrames Storyboard.TargetName="btnStopRecord" Storyboard.TargetProperty="Visibility">
                            <DiscreteObjectKeyFrame KeyTime="0" Value="Collapsed"/>
                        </ObjectAnimationUsingKeyFrames>-->
                    </Storyboard>
                </VisualState>
                <VisualState x:Name="StopRecordIconState">
                    <Storyboard>
                        <!--<ObjectAnimationUsingKeyFrames Storyboard.TargetName="btnStartRecord" Storyboard.TargetProperty="Visibility">
                            <DiscreteObjectKeyFrame KeyTime="0" Value="Collapsed"/>
                        </ObjectAnimationUsingKeyFrames>-->
                        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="btnStopRecord" Storyboard.TargetProperty="Visibility">
                            <DiscreteObjectKeyFrame KeyTime="0" Value="Visible"/>
                        </ObjectAnimationUsingKeyFrames>
                    </Storyboard>
                </VisualState>
                </VisualStateGroup>                
        </VisualStateManager.VisualStateGroups>
但我看不到任何视觉状态的变化,我也不知道为什么:(

我做错什么了吗?

你在打电话吗

VisualStateManager.GoToState((Button)this.btnStartRecord, RecordIconState.Name, false); // I get this always false
但只要看一眼,你就应该打电话

VisualStateManager.GoToState(this, RecordIconState.Name, false);

正如上面注释中提到的atomaras,将代码移动到usercontrol的根目录下
它成功了:)

VSM是否连接到根元素?是的,它连接到xaml代码上方的网格。@atomaras非常感谢。尽管VAM附加到我的上下文的根,但它周围还有额外的网格。我试着把它连接到那个上面,结果成功了!伟大的非常感谢:)顺便说一句,我喜欢在转换到指定状态时使用指定状态的名称。你从哪儿弄来的?我也需要开始做。嗨,菲利普,我两种方法都试过了。如果你看,在“如果”部分,我试着发送“这个”,但没有成功。所以我试了一下按钮,但也没用。以我自己方便的方式命名。代码太大了,所以为了简化编写几天后的工作,我使用了它。很高兴你喜欢它。很多人不喜欢:)顺便说一句,如果你有其他办法解决这个问题,请告诉我。谢谢:)
VisualStateManager.GoToState(this, RecordIconState.Name, false);