2

空白の Windows ストア アプリ内でバインディングを使用できるかどうかを確認するサンプルをStyle作成しました。コンパイルはしましたが、期待どおりに動作しませんでした。私は XAML とバインドに比較的慣れていないため、何かを見落としている可能性があります。

以下のサンプルには 2 つの四角形があり、両方ともスライダー コントロールにバインドされており、スライダーが移動すると両方が同時に変化するはずですが、最初の 1 つだけが変化するようです。最初のものは直接バインドされ、2 つ目は a を介してバインドされstyleます。

Win Store アプリでバインドStyleが可能であると思われますか? (私の目的は、一度に多数の要素の設定を変更するスライダーを持つことです。これは、バインディングをすべての要素にコピー/貼り付けするよりも優れたアプローチのように思われました)

<Grid Background="#FF87873D">

    <StackPanel>
        <StackPanel.Resources>
            <Style x:Key="myTestRectangleStyle" TargetType="Rectangle">
                <Setter Property="Fill" Value="DarkBlue" />
                <Setter Property="Margin" Value="10,10" />
                <Setter Property="Height" Value="30" />
                <Setter Property="Width" Value="{Binding ElementName=slider1, Path=Value}" />
            </Style>
        </StackPanel.Resources>

        <Rectangle Width="{Binding ElementName=slider1, Path=Value}" Fill="Black" Margin="10,10" Height="30"/>

        <Rectangle Style="{StaticResource myTestRectangleStyle}"/>

        <Slider Name="slider1" Minimum="20" Maximum="200" Margin="20,0"/>
    </StackPanel>
</Grid>
4

1 に答える 1

0

私自身の質問に答えます...これは Windows ストア アプリでは不可能なようです。

MSDN フォーラムのユーザーから明確な説明がありました。

[バインディング] はStyle、WPF のように Windows ストア アプリのセッターではサポートされていません。つまり、スライダーの Value プロパティにバインドすることはできません。Style

したがって、回避策は、バインディングを直接外側に設定することStyleです(残念ながらバインドする要素がたくさんある場合は、長いオプションです)

于 2014-07-13T21:58:45.393 に答える