0

したがって、トリガーの値でCalendarModeを使用できるようにxmlnsを設定する方法を知る必要があります。

xmlns:cal = "clr-namespace:System.Windows.Controls"、xmlns:cal = "clr-namespace:System.Windows.Controls.Calendar"を使用してみましたが、毎回プロジェクトをビルドしましたが、 CLR名前空間が未定義であり、見つからないことを通知するエラー。

これが私が使った場所です

<DataTrigger Binding="{Binding Source=_Calendar, Path=Calendar.DisplayMode}">
  <DataTrigger.Value>
    <cal:CalendarMode>Month</cal:CalendarMode>
  </DataTrigger.Value>
  <Setter Property="Grid.Opacity" Value="1" />
</DataTrigger>

カレンダーでDisplayModeChangedイベントを聞くことができたと思いますが、このソリューションを1日中オンラインで検索しているので、この方法でこの問題にどのように対処できるかを知りたいと思います。

任意の入力をいただければ幸いです。ありがとう!

4

1 に答える 1

0

実際、私はあなたが必要とするものを正確に理解していませんでした。しかし、私は助けようとします。

私たちが見る定義:

ここに画像の説明を入力

次に、実行する必要がある xaml を使用できるようにします。

xmlns:presentation="clr-namespace:System.Windows.Controls;assembly=PresentationFramework"

ここで、独自のコントロールの依存関係プロパティで何かを発生させたい場合は、DataTriggers ではなく Triggers を使用する必要があります。

サンプル:

 <Calendar Height="170" HorizontalAlignment="Left"  Margin="83,112,0,0" Name="calendar1" VerticalAlignment="Top" Width="180">
        <Calendar.Style>
            <Style TargetType="Calendar">
                <Setter Property="Opacity" Value="0.4"/>
                <Style.Triggers>
                    <Trigger Property="SelectionMode" Value="{x:Static presentation:CalendarMode.Month}">
                        <Setter Property="Opacity" Value="1.0"/>
                    </Trigger>
                </Style.Triggers>
            </Style>
        </Calendar.Style>
    </Calendar>

通常、DataTriggers は、実装 INotifyPropertyChanged によって作成されたオブジェクトに使用されます。ゴチャゴチャにしない。

ここで、別のコントロールを変更したい場合 (CalendarMode が変更されたとき) は、次のようにする必要があります。

 <Calendar Height="170" HorizontalAlignment="Left"  Margin="83,112,0,0"
 Name="calendar1" VerticalAlignment="Top" Width="180"/>

    <Grid>
        <Grid.Style>
            <Style TargetType="Grid">
                <Setter Property="Opacity" Value="0.5"/>
                <Style.Triggers>
                    <DataTrigger Binding="{Binding ElementName=calendar1, Path=CalendarMode}">
                        <DataTrigger.Value>
                            <presentation:CalendarMode>Month</presentation:CalendarMode>
                        </DataTrigger.Value>
                        <Setter Property="Opacity" Value="1.0"/>
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </Grid.Style>
    </Grid>

トリガー、データトリガー、バインディングについてもっと読むことをお勧めします。

于 2012-08-28T03:22:07.637 に答える