2017-04-05 25 views
3

私はカスタムTitleBarでWPFアプリケーションを作成しています。カスタムボタンスタイルもあります。私は両方のカスタムコントロールを完全に作成しましたが、サイズ変更ボタンを作成している間に、ウィンドウの状態の問題のキャプションが変更されました。カスタムコントロールのXAMLコードは...データトリガーでラベルのカスタムプロパティを使用できません

<local:MaterialButton Grid.Column="7" BackStyle="{StaticResource StyleWhite}"> 
    <local:MaterialButton.Triggers> 
    <DataTrigger Binding="{Binding WindowState, RelativeSource={RelativeSource AncestorType={x:Type Window}}}" Value="Normal"> 
     <Setter Property="Caption" Value="&#xE922;" /> 
    </DataTrigger> 
    <DataTrigger Binding="{Binding WindowState, RelativeSource={RelativeSource AncestorType={x:Type Window}}}" Value="Maximized"> 
     <Setter Property="Caption" Value="&#xE923;" /> 
    </DataTrigger> 
    </local:MaterialButton.Triggers> 
</local:MaterialButton> 

と背後にあるコードは...

 public string Caption 
    { get { return (string)GetValue(CaptionProperty); } 
     set { SetValue(CaptionProperty, value); } 
    } 
    public static readonly DependencyProperty CaptionProperty = 
     DependencyProperty.Register("Caption", typeof(string), typeof(MaterialButton)); 

である。この

+0

完全なxamlを提供できますか? – Parag

+0

バインディングエラーが発生していることを確認するために出力ウィンドウを確認してください。DPが正常に表示されます。 –

+0

あなたの問題は何ですか?また、MaterialButtonのコード、 "StyleWhite"、およびMaterialButtonのデフォルトスタイルを投稿してください。 – mm8

答えて

0

で助けてください、私はすでにこの問題を解決しました。 XAMLは......

<Style TargetType="{x:Type local:TitleBar}"> 
    <Setter Property="Template"> 
    <Setter.Value> 
     <ControlTemplate TargetType="{x:Type local:TitleBar}"> 
     <Grid Name="TitleBar" Height="60" HorizontalAlignment="Stretch" 
       Background="{Binding Background, FallbackValue=SteelBlue}"> 
      <Path Fill="#FF2A5478" Style="{Binding TitleBarStyle, FallbackValue='{StaticResource StyleDesign01}'}" 
       HorizontalAlignment="Right" VerticalAlignment="Top" Height="200"/> 
      <Grid Height="30" HorizontalAlignment="Stretch" VerticalAlignment="Top"> 
       <Grid.ColumnDefinitions> 
        <ColumnDefinition Width="30"/> 
        <ColumnDefinition Width="1*"/> 
        <ColumnDefinition Width="Auto"/> 
        <ColumnDefinition Width="Auto"/> 
        <ColumnDefinition Width="Auto"/> 
        <ColumnDefinition Width="Auto"/> 
        <ColumnDefinition Width="Auto"/> 
        <ColumnDefinition Width="Auto"/> 
        <ColumnDefinition Width="Auto"/> 
       </Grid.ColumnDefinitions> 
       <Image Grid.Column="0" Name="Icon" Stretch="Uniform" Height="auto" Width="auto" Margin="5" 
       Source="{Binding Path=Icon, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" 
       HorizontalAlignment="Center" VerticalAlignment="Center"/> 
       <TextBlock Grid.Column="1" Name="Title" Foreground="White" Margin="5,0,0,0" FontFamily="Segoe UI" 
          Text="{Binding Path=Title, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" 
          HorizontalAlignment="Left" VerticalAlignment="Center"/> 
       <local:FlatButton Grid.Column="8" x:Name="CloseButton" Caption="&#xE947;" 
           Height="30" Width="45" 
           BackStyle="{StaticResource StyleRed}"/> 
       <local:FlatButton Grid.Column="7" x:Name="ResizeButton" 
           Height="30" Width="45" 
           BackStyle="{StaticResource StyleWhite}"> 
       <local:FlatButton.Style> 
        <Style TargetType="local:FlatButton"> 
        <Style.Triggers> 
         <DataTrigger Binding="{Binding WindowState, RelativeSource={RelativeSource AncestorType={x:Type Window}}}" Value="Normal"> 
          <Setter Property="Caption" Value="&#xE922;" /> 
         </DataTrigger> 
         <DataTrigger Binding="{Binding WindowState, RelativeSource={RelativeSource AncestorType={x:Type Window}}}" Value="Maximized"> 
          <Setter Property="Caption" Value="&#xE923;" /> 
         </DataTrigger> 
         </Style.Triggers> 
        </Style> 
        </local:FlatButton.Style> 
       </local:FlatButton> 
       <local:FlatButton Grid.Column="6" x:Name="MinimizeBtton" Caption="&#xE921;" 
            Height="30" Width="45" 
            BackStyle="{StaticResource StyleWhite}"/> 
       </Grid> 
      </Grid> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 
関連する問題