.net 按钮的控件模板中的TranslateTransform
我正在我的应用程序资源中制作一个自定义按钮。。。我想让它在用户点击按钮时。。文本将进行翻译。。基本上移动按钮的文本以模拟正在按下的按钮。我在网上找不到任何一个例子来解释我是如何做到这一点的 如果它只是一个简单的属性,那就容易多了。。但Translate变换背后的代码相当复杂:.net 按钮的控件模板中的TranslateTransform,.net,wpf,xaml,.net,Wpf,Xaml,我正在我的应用程序资源中制作一个自定义按钮。。。我想让它在用户点击按钮时。。文本将进行翻译。。基本上移动按钮的文本以模拟正在按下的按钮。我在网上找不到任何一个例子来解释我是如何做到这一点的 如果它只是一个简单的属性,那就容易多了。。但Translate变换背后的代码相当复杂: <TextBlock Grid.Row="2" Text="Test" VerticalAlignment="Center" HorizontalAlig
<TextBlock Grid.Row="2" Text="Test" VerticalAlignment="Center"
HorizontalAlignment="Center" RenderTransformOrigin="0.5,0.5">
<TextBlock.RenderTransform>
<TransformGroup>
<ScaleTransform/>
<SkewTransform/>
<RotateTransform/>
<TranslateTransform Y="5" X="-5"/>
</TransformGroup>
</TextBlock.RenderTransform>
</TextBlock>
或者我可以做一个简单的设置属性等。这是我到目前为止为我的按钮
<Style TargetType="{x:Type Button}">
<Setter Property="Width" Value="80" />
<Setter Property="Height" Value="30" />
<Setter Property="Margin" Value="5" />
<Setter Property="TextBlock.FontSize" Value="14" />
<Setter Property="Background" Value="{StaticResource RCSButtonFace}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Grid>
<Rectangle x:Name="rectangle" Fill="WhiteSmoke" Stroke="Black" StrokeThickness="1"/>
<ContentPresenter Margin="5" HorizontalAlignment="Center" VerticalAlignment="Center">
<ContentPresenter.Resources>
<Style TargetType="{x:Type TextBlock}" BasedOn="{StaticResource WrappingStyle}" />
</ContentPresenter.Resources>
</ContentPresenter>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True" >
<Setter Property="StrokeThickness" TargetName="rectangle" Value="1.5"/>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<!--<Setter Property="Fill" TargetName="rectangle" Value="#D6FFD6"/>-->
<Setter Property="Fill" TargetName="rectangle" Value="LightGray"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
一个更简单的方法是留一个余量,然后增加余量。哈哈,那会容易得多。。我可以试试