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>