0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Visual Studio / WPF > error > 型 'Storyboard'のインスタンスを型 'FreezableCollection `1'のコレクションに追加することはできません。型 'T'の項目のみが許可されます。

Last updated at Posted at 2017-05-28
Visual Studio 2017 Community (以下VS)
WPFを使用
Windows 7 Pro (32bit)

中国語のWPF Tutorial終了後、別途、UserControlについて学習中。
以下を見つけた。
http://blog.okazuki.jp/entry/2014/09/08/203943

試してみた。

エラー

XAMLファイル

NuemricUpDown.xaml
<UserControl x:Class="_170528_t1127_UserControl.NumericUpDown"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             xmlns:local="clr-namespace:_170528_t1127_UserControl"
             mc:Ignorable="d" 
             d:DesignHeight="300" d:DesignWidth="300">
    <Grid>
        <VisualStateManager.VisualStateGroups>
            <VisualStateGroup x:Name="PositiveNegative">
                <VisualState x:Name="Positive"/>
                <VisualState x:Name="Negative"/>
                <Storyboard>
                    <ColorAnimation
                            Storyboard.TargetName="textBlockValue"
                            Storyboard.TargetProperty="Foreground.Color"
                            To="Red" />
                </Storyboard>
            </VisualStateGroup>"
        </VisualStateManager.VisualStateGroups>
        
        <Grid.RowDefinitions>
            <RowDefinition/>
            <RowDefinition/>
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto"/>
            <ColumnDefinition Width="Auto"/>
        </Grid.ColumnDefinitions>
        <RepeatButton Content="Up" Grid.Column="1" Margin="2.5" Click="UpButton_Click"/>
        <RepeatButton Content="Down" Grid.Column="1" Grid.Row="1"
                      Margin="2.5" Click="DownButton_Click"/>
        <TextBlock x:Name="textBlockValue" Grid.RowSpan="2" TextWrapping="Wrap"
                   Width="40"
                   HorizontalAlignment="Right" VerticalAlignment="Center" Margin="5"
                   Foreground="Black"/>
    </Grid>
</UserControl>

エラーメッセージ

上記の<Storyboard>の部分で以下のエラーが出る。

型 'Storyboard'のインスタンスを型 'FreezableCollection `1'のコレクションに追加することはできません。型 'T'の項目のみが許可されます。

訂正

訂正部分

<VisualState x:Name="Negative"/>

を以下に変更した。

<VisualState x:Name="Negative">

( <Storyboard>の階層がおかしな場所になっていた)。

修正版XAML

NumericUpDown.xaml
<UserControl x:Class="_170528_t1127_UserControl.NumericUpDown"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             xmlns:local="clr-namespace:_170528_t1127_UserControl"
             mc:Ignorable="d" 
             d:DesignHeight="300" d:DesignWidth="300">
    <Grid>
        <VisualStateManager.VisualStateGroups>
            <VisualStateGroup x:Name="PositiveNegative">
                <VisualState x:Name="Positive"/>
                <VisualState x:Name="Negative">
                    <Storyboard>
                        <ColorAnimation
                            Storyboard.TargetName="textBlockValue"
                            Storyboard.TargetProperty="Foreground.Color"
                            To="Red" />
                    </Storyboard>
                </VisualState>
            </VisualStateGroup>
        </VisualStateManager.VisualStateGroups>
        
        <Grid.RowDefinitions>
            <RowDefinition/>
            <RowDefinition/>
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto"/>
            <ColumnDefinition Width="Auto"/>
        </Grid.ColumnDefinitions>
        <RepeatButton Content="Up" Grid.Column="1" Margin="2.5" Click="UpButton_Click"/>
        <RepeatButton Content="Down" Grid.Column="1" Grid.Row="1"
                      Margin="2.5" Click="DownButton_Click"/>
        <TextBlock x:Name="textBlockValue" Grid.RowSpan="2" TextWrapping="Wrap"
                   Width="40"
                   HorizontalAlignment="Right" VerticalAlignment="Center" Margin="5"
                   Foreground="Black"/>
    </Grid>
</UserControl>
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?