0
XAMLとWPFの新機能です。WPF:プレス上でボタンのキャンバスを変更する方法は?
オンボタンを押してボタンに描かれているキャンバスをic_maximizeからic_restoreに変更し、ボタンをもう一度押すとキャンバスを切り替える必要があります。私はmahappsライブラリを使用しています。このことについてどうやって行くのか教えてください。
私は多くの異なるStackOverflowリンクを試しましたが、それらのどれも私の問題には関係ありません。
ここに私の最大化ボタンのスタイルがあります。私は「IsPressedは」準備ができたが、それはお互いの上に
<Canvas x:Key="ic_maximize" Width="13.3333" Height="13.3333" Canvas.Left="0" Canvas.Top="0">
<Rectangle Width="11.7333" Height="11.7333" Canvas.Left="2.136" Canvas.Top="-0.536002" Stretch="Fill" StrokeThickness="1.06667" StrokeLineJoin="Round" Stroke="#FF999999"/>
<Rectangle Width="11.7333" Height="11.7333" Canvas.Left="5.36442e-007" Canvas.Top="1.6" Stretch="Fill" StrokeThickness="1.06667" StrokeLineJoin="Round" Stroke="#FF999999" Fill="#FF161616"/>
</Canvas>
<Canvas x:Key="ic_restore" Width="12" Height="12" Canvas.Left="0" Canvas.Top="0">
<Rectangle Width="11.7333" Height="11.7333" Canvas.Left="5.36442e-007" Canvas.Top="0.266666" Stretch="Fill" StrokeThickness="1.06667" StrokeLineJoin="Round" Stroke="#FF999999"/>
</Canvas>
<Style x:Key="ExtendedMaxButtonStyle"
TargetType="{x:Type Button}"
BasedOn="{StaticResource MetroWindowButtonStyle}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Grid Name="grid" Background="{StaticResource MaxButton.Grid.background}">
<!-- either one of the ic_maximize/ic_restore canvases should come here -->
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="grid" Property="Background" Value="{StaticResource MaxButton.MouseOver.Background}" />
</Trigger>
<Trigger Property="IsPressed" Value="True">
<!-- What should I write here?-->
</Trigger>
<Trigger Property="IsPressed" Value="False">
<!-- What should I write here?-->
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
ありがとうございましたAnjum! – Ashwin
"IsPressed"トリガーは私が望むものではないようです。私はキャンバスを1回クリックするたびに切り替える必要があります。 "IsPressed"から "IsChecked"/"IsEnabled"にトリガを変更すると、期待どおりに動作しません。ここにあるすべてのポインターは高く評価されます。 – Ashwin
@NeoWin次に、 'Canvas:Visibility'を' Button:IsPressed'で変更し、別の 'Canvas:Visibility'を作成して最初の' Canvas:Visibility'に依存させるべきです。そのためにトリガーを書き込んでみてください。 'ToggleButton'のためにこのロットをもっと簡単にすることもできます。 – AnjumSKhan