0

メトロ アプリケーションのカスタム コントロールを作成し、Style からそのプロパティを設定したいと考えています。しかし、セッターは呼び出されません。

コントロール プロパティ:

    public int FramesCount
    {
        get { return _framesCount; }
        set
        {
            _framesCount = value;
            if (ImageFileMask != null) ReloadFrames();
        }
    }

    public static readonly DependencyProperty FramesCountProperty =
        DependencyProperty.Register(
            "FramesCount", typeof(int),
            typeof(MyControl), null
        );

XAML スタイル:

<Style TargetType="controls:MyControl" x:Key="wmLoadingBoxWaiting">
    <Setter Property="Width" Value="32"/>
    <Setter Property="Height" Value="32"/>
    <Setter Property="FramesCount" Value="1"/>
</Style>

そしてページ XAML:

<controls:MyControl HorizontalAlignment="Left" Margin="645,185,0,0" VerticalAlignment="Top" Style="{StaticResource wmLoadingBoxWaiting}"/>

標準プロパティ (Width と Height) は適切に設定されていますが、byt costom プロパティ FramesCount は設定されていません。そのセッターは、スタイルを設定するのではなく、ページ XAML で直接設定した場合にのみ呼び出します。私が間違っていることを誰かが知っていますか?

4

2 に答える 2

1

FramesCount定義を変更します。

public int FramesCount
{
    get { return (string)GetValue(FramesCountProperty ); }
    set 
    { 
        SetValue(FramesCountProperty , value); 
        if (ImageFileMask != null) ReloadFrames();
    }
}
于 2013-06-29T16:52:05.727 に答える