0

WPF で使用できるインタラクティブな XAML エディター、または XamlPadX 4.0 で VisualStateManager を使用する方法はありますか?

私は XamlPadX 4.0 を試してみましたが、それが詰まった VisualStateManager を使用して何かをしようとするまでは素晴らしかったです。大雑把な調査によると、VisualStateManager のサポートが Dotnet 4 の WPF に導入されましたが、XamlPadX 4 は Dotnet 2.5 を使用して構築されています。Dotnet 4 を使用するように XamlPadX をリダイレクトしようとしても成功しませんでした。

私の知る限り、Blend にはインタラクティブ モードがないように見えます。標準的な VS スタイルのコード/実行反復サイクルだけです。

Kaxaml をざっと見てみました。動作しているように見えますが、かなり制限されています。たとえば、ビジュアル ツリー エクスプローラーはありません。

コリンスミスによって提案された更新ブレンド機能

VS2012 Update 2 をインストールし、Blend を使用してみましたが、成功しませんでした。たとえば、次のコードを入力し、[オブジェクトとタイムライン] パネルからボタンを選択すると、[オブジェクトとタイムライン] パネルに「(ストーリーボードが開いていません)」と表示され、状態パネルには何も表示されません。Blend で [ヘルプ] をクリックすると、「申し訳ありません。要求したページが見つかりません」という MSDN ページが表示されます。また、Blend for VS2012 を WPF で使用するためのガイダンスを Web で検索しても、何も表示されません。WPF のサポートは、数日前にリリースされた VS2012 Update 2 で Blend for VS2012 に追加されただけなので、あまり驚くことではありません。

<Window x:Class="BlendScratchProject.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="91" Width="192">

    <Grid HorizontalAlignment="Center" VerticalAlignment="Center">
        <Button Content="Button">
            <Button.Template>
                <ControlTemplate TargetType="Button">
                    <Border x:Name="_rootElement">
                        <Border.Background>
                            <SolidColorBrush x:Name="_borderBrush" Color="Black"/>
                        </Border.Background>

                        <Grid Margin="4">
                            <Grid.Background>
                                <SolidColorBrush x:Name="_backgroundBrush" Color="Green"/>
                            </Grid.Background>

                            <ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
                                VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
                                Margin="5"/>
                        </Grid>

                        <VisualStateManager.VisualStateGroups>
                            <VisualStateGroup x:Name="CommonStates">

                                <VisualState x:Name="Normal"/>

                                <VisualState x:Name="MouseOver">
                                    <Storyboard>
                                        <ColorAnimation Storyboard.TargetName="_borderBrush"
                                            Storyboard.TargetProperty="Color" To="Red" Duration="0:0:0"/>
                                    </Storyboard>
                                </VisualState>

                            </VisualStateGroup>
                        </VisualStateManager.VisualStateGroups>
                    </Border>
                </ControlTemplate>
            </Button.Template>
        </Button>
    </Grid>

</Window>
4

1 に答える 1