0

ボタンの背景に統合する次の XAML コードを取得するにはどうすればよいですか。私は非常に多くの方法を試しましたが、それを機能させるのに苦労しています。PS私はXAMLが初めてです。

    <Viewbox Width="55.247" Height="55.247"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Canvas Width="55.247" Height="55.247">

  <Canvas>

  <!-- button/circle -->
  <Path StrokeThickness="1.0" Stroke="#ff335284" StrokeMiterLimit="1.0" Data="F1 M 54.747,27.624 C 54.747,42.603 42.603,54.747 27.624,54.747 C 12.644,54.747 0.500,42.603 0.500,27.624 C 0.500,12.644 12.644,0.500 27.624,0.500 C 42.603,0.500 54.747,12.644 54.747,27.624 Z">
    <Path.Fill>
      <RadialGradientBrush MappingMode="Absolute" GradientOrigin="392.717,-251.469" Center="392.717,-251.469" RadiusX="27.123" RadiusY="27.123">
        <RadialGradientBrush.GradientStops>
          <GradientStop Offset="0.00" Color="#ff00aae4"/>
          <GradientStop Offset="1.00" Color="#ff2463a7"/>
        </RadialGradientBrush.GradientStops>
        <RadialGradientBrush.Transform>
          <MatrixTransform Matrix="1.000,0.000,-0.000,-1.000,-365.093,-223.845" />
        </RadialGradientBrush.Transform>
      </RadialGradientBrush>
    </Path.Fill>
  </Path>

  </Canvas>
</Canvas>
</Viewbox>
4

2 に答える 2

3

次の例では、標準のボタン テンプレートをデザインに置き換え、コンテンツ プレゼンターを追加して、ボタンのコンテンツを引き続き設定できるようにします。

<Button Content="OK" Width="75" Height="75">
    <Button.Template>
        <ControlTemplate TargetType="Button">

            <Grid>
                <Path StrokeThickness="1.0" Stroke="#ff335284" StrokeMiterLimit="1.0" Data="F1 M 54.747,27.624 C 54.747,42.603 42.603,54.747 27.624,54.747 C 12.644,54.747 0.500,42.603 0.500,27.624 C 0.500,12.644 12.644,0.500 27.624,0.500 C 42.603,0.500 54.747,12.644 54.747,27.624 Z">
                  <Path.Fill>
                      <RadialGradientBrush MappingMode="Absolute" GradientOrigin="392.717,-251.469" Center="392.717,-251.469" RadiusX="27.123" RadiusY="27.123">
                          <RadialGradientBrush.GradientStops>
                              <GradientStop Offset="0.00" Color="#ff00aae4"/>
                              <GradientStop Offset="1.00" Color="#ff2463a7"/>
                          </RadialGradientBrush.GradientStops>
                          <RadialGradientBrush.Transform>
                              <MatrixTransform Matrix="1.000,0.000,-0.000,-1.000,-365.093,-223.845" />
                          </RadialGradientBrush.Transform>
                      </RadialGradientBrush>
                 </Path.Fill>
             </Path>
             <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
        </Grid>

    </ControlTemplate>
</Button.Template>

于 2012-08-15T04:41:24.317 に答える
1

これを実現するには、複数のオプションがあります。文字通りパスをボタンに入れようとしているだけなら、最小限の労力でそれを行うことができます。

<Button Width="75" Height="75">
    <!-- Embed our elements in a grid since Content can be set only once -->
    <Grid>
        <!-- Your Path -->
        <Path StrokeThickness="1.0" Stroke="#ff335284" StrokeMiterLimit="1.0" Data="F1 M 54.747,27.624 C 54.747,42.603 42.603,54.747 27.624,54.747 C 12.644,54.747 0.500,42.603 0.500,27.624 C 0.500,12.644 12.644,0.500 27.624,0.500 C 42.603,0.500 54.747,12.644 54.747,27.624 Z">
          <Path.Fill>
            <RadialGradientBrush MappingMode="Absolute" GradientOrigin="392.717,-251.469" Center="392.717,-251.469" RadiusX="27.123" RadiusY="27.123">
              <RadialGradientBrush.GradientStops>
                <GradientStop Offset="0.00" Color="#ff00aae4"/>
                <GradientStop Offset="1.00" Color="#ff2463a7"/>
              </RadialGradientBrush.GradientStops>
              <RadialGradientBrush.Transform>
                <MatrixTransform Matrix="1.000,0.000,-0.000,-1.000,-365.093,-223.845" />
              </RadialGradientBrush.Transform>
            </RadialGradientBrush>
          </Path.Fill>
        </Path>
        <!-- Your Button Text -->
        <TextBlock Text="Button" HorizontalAlignment="Center" VerticalAlignment="Center"/>
    </Grid>
</Button>

より技術的/より明確にする必要がある場合は、コントロール テンプレートに直接配置するだけです。これは、 WPF ボタン コントロール テンプレートに関するドキュメントです。

これがお役に立てば幸いです。幸いなことに、Web 上には WPF ボタンをカスタマイズするためのチュートリアルもたくさんあります。特に WPF と SL のどちらを対象としているか (VisualStateManager や Style Triggers などの違い) など、自分が望むものを正確に詳しく説明したい場合は、人々がより役立つ可能性があります。:)

于 2012-08-15T04:30:22.343 に答える