Wpf 打开windows对话框的切换按钮

Wpf 打开windows对话框的切换按钮,wpf,xaml,Wpf,Xaml,我有一个这样的切换按钮: <ToggleButton Name="loadSlideTitle" IsChecked="{Binding SlideTitleLoaded, Mode=OneWay}" Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="1" Grid.RowSpan="1" Background="Transparent" Command="{Binding DataContext.L

我有一个这样的切换按钮:

                       <ToggleButton Name="loadSlideTitle" IsChecked="{Binding SlideTitleLoaded, Mode=OneWay}"  Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="1" Grid.RowSpan="1" Background="Transparent" Command="{Binding DataContext.LoadSlideTitleCommand, RelativeSource={RelativeSource FindAncestor, AncestorType=ListView}}">

                            <ToggleButton.Template>
                                <ControlTemplate TargetType="{x:Type ToggleButton}">
                                    <Grid RenderTransformOrigin="0.5,0.5" x:Name="bg">
                                        <Image x:Name ="loadSlideTitle_image" Source="/Import_TitleImport.png"/>
                                    </Grid>
                                    <ControlTemplate.Triggers>
                                        <MultiTrigger>
                                            <MultiTrigger.Conditions>
                                                <Condition Property="IsMouseOver"  Value="True" />
                                                <Condition Property="IsChecked" Value="False" />
                                            </MultiTrigger.Conditions>
                                            <Setter TargetName="loadSlideTitle_image" Property="Source" Value="/Import_TitleImport_Mouseover.png"/>
                                        </MultiTrigger>

                                        <MultiTrigger>
                                            <MultiTrigger.Conditions>
                                                <Condition Property="IsMouseOver"  Value="False" />
                                                <Condition Property="IsChecked" Value="True" />
                                            </MultiTrigger.Conditions>
                                            <Setter TargetName="loadSlideTitle_image" Property="Source" Value="/Import_TitleDelete.png"/>
                                        </MultiTrigger>

                                        <MultiTrigger>
                                            <MultiTrigger.Conditions>
                                                <Condition Property="IsMouseOver"  Value="True" />
                                                <Condition Property="IsChecked" Value="True" />
                                            </MultiTrigger.Conditions>
                                            <Setter TargetName="loadSlideTitle_image" Property="Source" Value="/Import_TitleDelete_Mouseover.png"/>
                                        </MultiTrigger>


                                        <Trigger Property="ButtonBase.IsPressed"  Value ="True">
                                            <Setter TargetName="bg" Property="RenderTransform">
                                                <Setter.Value>
                                                    <ScaleTransform ScaleX="0.9" ScaleY="0.9"/>
                                                </Setter.Value>
                                            </Setter>
                                        </Trigger>
                                    </ControlTemplate.Triggers>
                                </ControlTemplate>
                            </ToggleButton.Template>

                        </ToggleButton>
问题是,我一单击按钮,它就会切换并更改图像,然后弹出windows对话框。我希望仅当用户选择正确的文件并关闭对话框时,才切换按钮


通过使用普通按钮和“Slide_1_6”模型上的INotifyPropertyChange,我已经可以实现所需的行为。但是,我想纯粹在xaml中实现它。

尝试使用您的ToggleButton的Tag属性。例如:如果选择了文件,则将标记属性设置为“1”,否则设置为“0”。 使用Style.Triggers,您可以检测到更改

具有按钮背景的示例

<ToggleButton>
   <ToggleButton.Style>
       <Style TargetType="{x:Type ToggleButton}">
           <Style.Triggers>
               <Trigger Property="Tag" Value="1">
                   <Setter Property="Background" Value="Red" />
               </Trigger>
               <Trigger Property="Tag" Value="0">
                   <Setter Property="Background" Value="Blue" />
               </Trigger>
           </Style.Triggers>
       </Style>
   </ToggleButton.Style>
</ToggleButton>


当您将标记值更改为“1”或“0”时,背景应更改。

尝试使用您的ToggleButton的Tag属性。例如:如果选择了文件,则将标记属性设置为“1”,否则设置为“0”。 使用Style.Triggers,您可以检测到更改

具有按钮背景的示例

<ToggleButton>
   <ToggleButton.Style>
       <Style TargetType="{x:Type ToggleButton}">
           <Style.Triggers>
               <Trigger Property="Tag" Value="1">
                   <Setter Property="Background" Value="Red" />
               </Trigger>
               <Trigger Property="Tag" Value="0">
                   <Setter Property="Background" Value="Blue" />
               </Trigger>
           </Style.Triggers>
       </Style>
   </ToggleButton.Style>
</ToggleButton>

将标记值更改为“1”或“0”时,背景应更改