Quiero configurar la información sobre herramientas de mi botón mostrando su comando de teclado de método abreviado.

<Button Command="Cut" 
            CommandTarget="{Binding ElementName=textBox}"
            Content="{Binding RelativeSource={RelativeSource Self},Path=Command}"
            ToolTip="{Binding RelativeSource={RelativeSource Self}, Path=Command.InputGestures[0]}"/>

Pero, muestra el resultado:

enter image description here

Muestra "Ctrl + X, Ctrl + X". Solo quiero un "Ctrl + X". Por favor, ayúdame. Yo soy el principiante.

wpf
3
Sokheang Khun 11 sep. 2016 a las 05:54

4 respuestas

La mejor respuesta

Encontré el camino más fácil aquí.

<Button Command="Cut"
            DockPanel.Dock="Top"
            CommandTarget="{Binding ElementName=textBox}"
            Content="{Binding RelativeSource={RelativeSource Self},Path=Command}"
            ToolTip="{Binding RelativeSource={RelativeSource Self}, Path=Command.InputGestures[0].DisplayString}" />
2
Sokheang Khun 13 feb. 2017 a las 09:48

Quizás un convertidor pueda ayudar:

    <Button Command="ApplicationCommands.Cut"  
        Content="{Binding RelativeSource={RelativeSource Self},Path=Command}"
        ToolTip="{Binding RelativeSource={RelativeSource Self}, Path=Command.InputGestures[0], Converter={StaticResource KeyGestureToStringConverter}}"/>

public class KeyGestureToStringConverter : IValueConverter
{
    public static Conv Conv0() { return new Test.Conv(); }

    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        return ((KeyGesture)value).DisplayString;
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}
0
Ron 12 feb. 2017 a las 07:23

Tu Xaml es correcto. Creo que lo usas así en el código

command.InputGestures.Add(new KeyGesture(Key.X, ModifierKeys.Control));

Debe verificar su código, tal vez funcione dos veces.

Estoy probando escribir un pequeño código. Pero es un trabajo normal

enter image description here

0
ebattulga 11 sep. 2016 a las 04:15

Creo que deberías mantenerlo simple.

 <Button Tooltip="Ctrl+X" Content="cut" Command="ApplicationCommands.Cut" 
 CommandBinding="textBox">

Xaml está arriba.

0
Shukant Pal 11 sep. 2016 a las 03:06