2

ボタン スタイルがあり、境界線の CornerRadius プロパティをテンプレートにプロパティ データバインドできないようです。これは依存関係プロパティであるため、データ バインド可能である必要があります。使用する適切な XAML 構文がないのだろうか?

<Style TargetType="{x:Type Button}" BasedOn="{x:Null}">         
      <Setter Property="FocusVisualStyle" Value="{DynamicResource MyButtonFocusVisual}"/>       
      <Setter Property="Background" Value="{DynamicResource MyButtonBackgroundBrush}"/>       
      <Setter Property="Foreground" Value="{DynamicResource MyButtonForegroundBrush}"/>
      <Setter Property="BorderBrush" Value="{DynamicResource MyButtonBorderBrush}"/>
      <Setter Property="BorderThickness" Value="3"/>
      <Setter Property="FontFamily" Value="Segoe UI"/>      
      <Setter Property="FontSize" Value="14" />
      <Setter Property="CornerRadius" Value="2" />
      <Setter Property="Template">          
      <Setter.Value>
        <ControlTemplate TargetType="{x:Type Button}">
           <!-- We use Grid as a root because it is easy to add more elements to customize the button -->
           <Grid x:Name="Grid">
           <Border x:Name="Border" CornerRadius="{TemplateBinding CornerRadius}" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Padding="{TemplateBinding Padding}"/> 
           </Grid> 
         </ControlTemplate>             
       </Setter.Value>      
     </Setter>                  
   </Style>

と CornerRadius="{TemplateBinding CornerRadius}" の両方で、「CornerRadius が認識されないか、アクセスできません」というエラーが表示されます。

4

2 に答える 2

5

CornerRadiusclass でプロパティを設定/バインドしようとしていますButtonが、そのようなプロパティはありません。したがって、エラーが予想されます。

于 2008-11-30T18:19:34.560 に答える
1

ケントは正しい。これを回避するには、ボタン クラスから継承する独自のカスタム コントロールを作成します。次に、この派生クラス内で依存関係プロパティを作成し、CornerRadius プロパティのウィンドウに登録します。その後、上記のコードを使用できますが、Button コントロールでスタイル プロパティを設定する代わりに、派生クラスでスタイル プロパティを設定します。

于 2008-12-01T21:11:50.063 に答える