Microsoft.Windows.Controls.Ribbon.RibbonTabオブジェクトのラベルの色をEnabled状態にバインドする際に問題があります。コントロールのIsEnabled状態に前景色をバインドします。
<Style TargetType="{x:Type r:RibbonTab}">
<Setter Property="Foreground" Value="White" />
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=IsEnabled}" Value="False">
<Setter Property="Foreground" Value="Gray" />
</DataTrigger>
</Style.Triggers>
</Style>
しかし、それはフォアグラウンドに影響を与えています
は、私が最初に次のことを試しました。それはribbonTabライブラリコードで何かがプログラム的にフォアグラウンドに上書きされるようになります。私は、この試みた:
<Style x:Key="BaseRibbonTabStyle" TargetType="{x:Type r:RibbonTab}">
<EventSetter Event="IsEnabledChanged" Handler="RibbonTab_IsEnabledChanged"
</Style>
private void RibbonTab_IsEnabledChanged(object sender, DependencyPropertyChangedEventArgs e)
{
if((bool)e.NewValue == false)
((RibbonTab)sender).Foreground = (new System.Windows.Media.BrushConverter()).ConvertFromString("Gray") as System.Windows.Media.Brush;
else
((RibbonTab)sender).Foreground = (new System.Windows.Media.BrushConverter()).ConvertFromString("White") as System.Windows.Media.Brush;
}
をしかし、それはまた、次のコンパイル時のエラーで失敗しました:私はこれを取得できますか
System.Windows.UIElement.IsEnabledChanged="RibbonTab_IsEnabledChanged_Event" is not valid. 'IsEnabledChanged' must be a RoutedEvent registered with a name that ends with the keyword "Event".
作業?
を、あなたも 'ControlTemplate'のコンテキストにありますか? 'TemplatedParent'の仕組みを知っていますか? [バインディングエラー](http://blogs.msdn.com/b/wpfsldesigner/archive/2010/06/30/debugging-data-bindings-in-a-wpf-or-silverlight-application.aspx)がありますか? *全く*意味的に異なるものではない –