ボタンの画像を設定しようとしていますが、画像にテキストが含まれていません。その画像のテキストを手動で設定したいのですが、画像のボタンコンテンツでこの方法のボタンを試しましたが、テキストを設定する方法はありませんそれ、私はWindows Mobile 7のVisual Studio 2012で作業しています
2 に答える
Image を Button として機能させる最もクリーンな方法は、style プロパティを設定することです。
<Style x:Key="CustomButton" TargetType="Button">
<Setter Property="Template" >
<Setter.Value >
<ControlTemplate>
<Image Source="Images/Sample.jpg" />
</ControlTemplate >
</Setter.Value >
</Setter >
新しいブロックを定義してページにこのコードを設定する<Grid.Resources></Grid.Resources>
かStandardStyles.xaml
、新しいボタンを定義するときにBasedOn
プロパティをスタイルで定義した Key 値に設定します。
<Button x:Name="ButtonName" Height="Auto" Width="Auto">
<StackPanel>
<Image Source=image.JPG" Stretch="Fill" Height="Auto" Width="Auto" />
<TextBlock Text="picture Button" TextAlignment="Center" />
</StackPanel>
</Button>
ボタンの content プロパティを設定しないでください。また、ボタンに適切なサイズを指定してください。そうしないと、イメージ コントロールによってボタンが過度に大きくなります
ボタンでサポートされている 1 つの子だけではなく、多くの子を使用できるスタックパネル内にコントロールを配置すると、サイズをより簡単に制御できます。
あなたが与えた画像に基づいて、これが私のコードです。また、その画像リンクを質問に入れる必要があります
<Button Content="Text" Height="Auto" Width="Auto" BorderThickness="0">
<Button.Background>
<LinearGradientBrush StartPoint="0 0" EndPoint="0 1">
<LinearGradientBrush.GradientStops>
<GradientStopCollection>
<GradientStop Offset="0" Color="#FF03CCF0" />
<GradientStop Offset="1" Color="#FF0182C2" />
</GradientStopCollection>
</LinearGradientBrush.GradientStops>
</LinearGradientBrush>
</Button.Background>
</Button>
必要に応じてボタンのサイズを変更します。また、VisualStateManager を使用して他の表示状態の背景を変更する必要がある場合もありますが、結果はよりきれいになります。また、非常に汚いトリックもあります。私はそのコードを投稿していません。キャンバスをコンテンツとして使用し、背景を設定してから、内部にテキストブロックを挿入します。これが機能するかどうかはわかりませんが、とにかく実行しません。VisualStateManager を使用することをお勧めします。