我创建了一个包含按钮的工具栏。
其中3个按钮是剪切复制和粘贴。我设置了每个按钮的命令来剪切复制和粘贴属性,但是当我运行程序时,没有按钮甚至可以点击。他们是残疾人我猜吗?我正在尝试将文本框中的文本框复制并粘贴到tabcontrol中。任何帮助表示赞赏。
<Style TargetType="{x:Type Button}" x:Key="textBoxCommands">
<Setter Property="Content"
Value="{Binding RelativeSource={RelativeSource Self},
Path=Command.Text}" />
<Setter Property="CommandTarget"
Value="{Binding ElementName=textBox}" />
</Style>
<Button x:Name="btnCut"
Click="btnCut_Click">
<Image Source="Icons/Cut.png" ToolTip="Cut" />
</Button>
<Button x:Name="btnCopy"
Click="btnCopy_Click"
Command="ApplicationCommands.Copy"
Style="{StaticResource textBoxCommands}">
<Image Source="Icons/Copy.png" ToolTip="Copy" />
</Button>
<Button x:Name="btnPaste"
Click="btnPaste_Click"
Command="ApplicationCommands.Paste"
Style="{StaticResource textBoxCommands}" >
<Image Source="Icons/Paste.png" ToolTip="Paste" />
</Button>
答案 0 :(得分:6)
你不能这样使用命令!命令(以您使用它的方式)应位于Menu
或Toolbar
内
顺便说一下,你不需要那些点击事件处理程序,因为你要使用命令!
我建议您尝试将DelegateCommand
添加到ViewModel,然后让该委托调用ApplicationCommads
。
我强烈建议您阅读此http://msdn.microsoft.com/en-us/magazine/dd419663.aspx
但作为快速解决方案,您可以尝试以下方法(重要的是:请记住,您需要在TextBox
中选择一些文字,然后Copy
并启用Cut
:
<StackPanel HorizontalAlignment="Left" VerticalAlignment="Top">
<ToolBar>
<Button Content="Cut" Command="ApplicationCommands.Cut" Height="23" Width="75"/>
<Button Content="Copy" Command="ApplicationCommands.Copy" Height="23" Width="75"/>
<Button Content="Paste" Command="ApplicationCommands.Paste" Height="23" Width="75"/>
</ToolBar>
<TextBox Height="23" Name="textBox1" Width="120"/>
</StackPanel>
答案 1 :(得分:0)
为了达到目的,我建议使用togglebutton。
此按钮也可以按原样点击。 例如
查看msdn上的所有ApplicationCommands。您可以像以下一样轻松地实现它们:
<ToggleButton x:Name="PasteBtn" Command="ApplicationCommands.Paste"/>
<ToggleButton x:Name="CutBtn" Command="ApplicationCommands.Cut"/>
<ToggleButton x:Name="CopyBtn" Command="ApplicationCommands.Copy"/>