MaterialDesignXamlToolkit

MaterialDesignXamlToolkit

本文介绍了MaterialDesignXamlToolkit wpf dialoghost按钮在打开时被禁用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在将MaterialDesignThemes nuget包与Mahapps.Metro包一起使用

I am using the MaterialDesignThemes nuget package along with the Mahapps.Metro package

我有这个DialogHost

I have this DialogHost

<material:DialogHost Name="PopupAddCustom" HorizontalAlignment="Center" VerticalAlignment="Center" IsOpen="False" >
    <material:DialogHost.DialogContent>
        <StackPanel Margin="16" Orientation="Vertical">
            <Label Content="Add custom date" FontSize="16" />
            <DatePicker />
            <StackPanel Orientation="Horizontal">
                <Button Content="ACCEPT" Style="{DynamicResource MaterialDesignFlatButton}" IsDefault="True" Margin="0,8,8,0" Command="material:DialogHost.CloseDialogCommand" CommandParameter="True" />
                <Button Content="CANCEL" Style="{DynamicResource MaterialDesignFlatButton}" IsCancel="True" Margin="0,8,8,0" Command="material:DialogHost.CloseDialogCommand" CommandParameter="False" />
            </StackPanel>
        </StackPanel>
    </material:DialogHost.DialogContent>
</material:DialogHost>

该按钮正处于开放状态

<Button MinWidth="120" Margin="10" Style="{StaticResource MaterialDesignRaisedAccentButton}" ToolTip="Add in a new custom date." Command="{x:Static material:DialogHost.OpenDialogCommand}" CommandTarget="{Binding ElementName=PopupAddCustom}"  >
    <StackPanel Orientation="Horizontal">
        <Rectangle Width="20" Height="20" Fill="{Binding RelativeSource={RelativeSource AncestorType=Button}, Path=Foreground}">
            <Rectangle.OpacityMask>
                <VisualBrush Stretch="Fill" Visual="{StaticResource fa_plus}" />
            </Rectangle.OpacityMask>
        </Rectangle>
        <TextBlock Margin="10,0,0,0" VerticalAlignment="Center" Text="Custom" />
    </StackPanel>
</Button>

但是,当此对话框打开时,接受"和取消"按钮将被禁用.因此,要检查是否有任何问题,我从这样的MainWindow构造函数中手动打开了该对话框

However when this dialog gets opened the ACCEPT and CANCEL buttons are disabled. So to check if anything was wrong I manually opened this dialog from the my MainWindow constructor like this

this.Loaded += delegate(object sender, RoutedEventArgs args)
{
    this.PopupAddCustom.IsOpen = true;
};

当我打开这样的对话框时,按钮处于正常工作状态,我是否在这里遗漏了一些明显的东西?

When I open the dialog like this the button are in working order, am I missing something obvious here?

推荐答案

此问题通过为此类按钮设置命令目标而得以解决

The problem was resolved by setting a command target for the buttons like this

 CommandTarget="{Binding ElementName=PopupAddCustom}"

这篇关于MaterialDesignXamlToolkit wpf dialoghost按钮在打开时被禁用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-16 05:43