2011-09-27 45 views
3

我創建了一個帶有按鈕的工具欄。使用WPF按鈕複製和粘貼命令

其中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> 

回答

5

你不能使用命令這種方式!命令(以你使用它的方式)應該在MenuToolbar之內。
順便說一句,你不需要那些點擊事件處理程序,因爲你要使用命令!
我建議您嘗試將DelegateCommand添加到ViewModel,並讓該代表調用ApplicationCommads

我強烈建議你閱讀本http://msdn.microsoft.com/en-us/magazine/dd419663.aspx
但作爲一個快速的解決方案爲您嘗試以下的(重要:記住,你必須選擇一些文本您TextBox然後CopyCut將被啓用):

<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

感謝您的回覆。我明白這些命令可以用於什麼。我覺得這個問題很愚蠢,但我對這一切都很陌生。什麼是viewMode? – TMan

+1

這不是一個愚蠢的問題!對不起,我有一個錯字是「ViewModel」(我寫過ViewMode)。我在我的答案中添加了一些代碼 –

0

爲了達到您要達到的目的,我建議使用togglebutton。

此外,按鈕將是可點擊的,當他們應該。 例如

  • 粘貼按鈕只有在有東西要粘貼時纔會被點擊。
  • 當RTB中選擇了某些內容時,剪切/複製按鈕可以點擊。

查看所有在msdn上的ApplicationCommands。您可以輕鬆實現它們:

<ToggleButton x:Name="PasteBtn" Command="ApplicationCommands.Paste"/> 
<ToggleButton x:Name="CutBtn" Command="ApplicationCommands.Cut"/> 
<ToggleButton x:Name="CopyBtn" Command="ApplicationCommands.Copy"/>