私はWPFが初めてです。私のプロジェクトでは、usericon を使用してユーザー名のテキスト ボックス ボックスを試しました。
私の XAML コード:-
> <TextBox Height="30" Width="180" Margin="67,123,256,158">
> <TextBox.Background>
> <ImageBrush ImageSource="Images/User.png" Stretch="None" AlignmentX="Left" AlignmentY="Center" />
> </TextBox.Background>
> </TextBox>
しかし、ユーザー名を入力すると、テキスト ボックス カーソルが左端から始まり、2、3 文字が表示されず、見苦しくなります。(画像を参照)テキストボックスでこの背景画像を分離する方法。
編集 1-
> <Canvas>
> <DockPanel Canvas.Left="115" Canvas.Top="64">
> <Button BorderThickness="0" DockPanel.Dock="Left" HorizontalAlignment="Right" Height="28" Width="23">
> <Button.Background>
> <ImageBrush ImageSource="Images/User.png" Stretch="None" AlignmentX="Left" AlignmentY="Center" />
> </Button.Background>
> </Button>
> <TextBox Height="28" Width="115" HorizontalAlignment="Stretch" Background="Transparent"/>
> </DockPanel>
> </Canvas>
アドバイス通りやってみました。しかし問題は、ボタンとテキスト ボックスが別々に表示されることです。texbox のユーザー アイコンのようには見えません。カーソルをボタンに移動すると、ユーザーアイコンが非表示になります。私のコードを改善するのを手伝ってください..
編集2と回答:-
Button Hover Effect Disable のグリッド リソースに以下のコードを追加します。
<Style x:Key="ButtonWithoutHover" TargetType="Button">
<Setter Property="OverridesDefaultStyle" Value="True"/>
<Setter Property="Margin" Value="0"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border Name="border"
BorderThickness="0"
Background="{TemplateBinding Background}">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" />
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="border" Property="BorderBrush" Value="Black" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
そして、これをwpfウィンドウXAMLに追加します
<Canvas >
<Border BorderThickness="2" BorderBrush="DarkBlue" Canvas.Left="307" Canvas.Top="65">
<DockPanel Canvas.Left="115" Canvas.Top="30">
<Button Style="{StaticResource ButtonWithoutHover}" BorderThickness="0" DockPanel.Dock="Left" HorizontalAlignment="Right" Height="28" Width="23">
<Button.Background>
<ImageBrush ImageSource="Images/User.png" Stretch="None" AlignmentX="Left" AlignmentY="Center" />
</Button.Background>
</Button>
<TextBox FontSize="20" BorderThickness="0" Height="28" Width="115" HorizontalAlignment="Stretch" Background="Transparent"/>
</DockPanel>
</Border>
</Canvas>