Ich bin ein professioneller Windows-Anwendungsentwickler in VB.NET und C# mit Windows Forms, und jetzt sehr aufgeregt, in WPF-Entwicklung zu treten. Hier ist meine erste Frage, die ich nicht durch Such lösen könnte:Inhalt Ausrichtung und Positionierung in Vorlagen WPF-Steuerelement
Ich schrieb die folgende Vorlage, um vollständig das Aussehen meiner Tasten zu ändern:
<ControlTemplate TargetType="{x:Type Button}" x:Key="ImageButtonTemplate">
<Grid>
<Image Name="img" Source="/PSPlayer;component/Images/Buttons/ButtonNormal_normal.png"/>
<ContentPresenter Stylus.IsTapFeedbackEnabled="False" Stylus.IsTouchFeedbackEnabled="False" Stylus.IsPressAndHoldEnabled="False" Stylus.IsFlicksEnabled="False" Width="98" Height="61"/>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="img" Property="Source" Value="/PSPlayer;component/Images/Buttons/ButtonNormal_MouseOver.png"/>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter TargetName="img" Property="Source" Value="/PSPlayer;component/Images/Buttons/ButtonNormal_MouseDown.png"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
und hier eine Schaltfläche Definition:
<Button Content="SomeText" Height="61" Margin="0,0,0,7" Name="button7" Width="98" Click="button7_Click" Template="{StaticResource ImageButtonTemplate}"/>
Das Problem ist, dass der Text "SomeText" oben links auf der Schaltfläche erscheint und ich diesen Ort nicht ändern kann. Die Eigenschaften 'HorizontalContentAlignment' und 'VerticalContentAlignment' der Schaltflächen zeigen keinen Effekt (ich frage mich warum).
Zusätzlich möchte ich den Text manchmal an einer bestimmten Stelle positionieren, wie x = 70, wenn das Hintergrundbild ein Symbol enthält, das auf der linken Seite liegt, bis x = 60.
Ich machte einen Rundgang mit einem Etikett in der Taste eingebettet, die ich positionieren könnte, aber denke, es muss eine sauberere Lösung sein.
Ich hoffe, ich machte mich klar. WPF rulez durch die Art und Weise - wie auch diese Seite, die meisten meiner Probleme gelöst ich mit Buchungen von hier (aus Richtung google) :)
Vielen Dank im Voraus,
Julian
Danke, das hat geholfen. Ich änderte es in: VerticalAlignment = "{TemplateBinding VertikalContentAlignment}" HorizontalAlignment = "{TemplateBinding HorizontalContentAlignment}" dann war es gut. – Julian
Scheint ich brauche etwas Ruf, um Ihre Antwort zu wählen. – Julian
@Julian: NP. Ich habe deine Frage gewählt, um dir ein wenig zu helfen! –