2016-04-29 6 views
0

にナビゲーションボタンを追加し、私は、次のXAMLコードを使用して、私のC#アプリケーションにWebブラウザを追加しました:C#XAML-ブラウザのツールバー

<WebBrowser Name="rivBrowser" Height="550" Width="620" Margin="0, 40, 0, 0" Visibility="Visible" /> 
    <DockPanel> 
     <ToolBarTray DockPanel.Dock="Top"> 
      <ToolBar Header="File"> 
       <Button Command="New" Content="New" ToolBar.OverflowMode="Always" /> 
       <Button Command="Open" Content="Open" ToolBar.OverflowMode="Always" /> 
       <Button Command="Save" Content="Save" ToolBar.OverflowMode="Always" /> 
      </ToolBar> 
      <ToolBar Header="Edit" Margin="5.4,0,-5.4,0"> 
       <Button Command="Cut" Content="Cut" ToolBar.OverflowMode="Always" /> 
       <Button Command="Copy" Content="Copy" ToolBar.OverflowMode="Always" /> 
       <Button Command="Paste" Content="Paste" ToolBar.OverflowMode="Always" /> 
      </ToolBar> 
      <ToolBar Margin="9.2,0,-8.2,0"> 
       <Button Command="Back" ToolTip="Return to the previous page"/> 
       <Image Source="C:\Users\elgan\workspace\browser\riviam_windows\Images\navigateBack.png" Width="20" Height="20" Margin="0,0,0,2.4" /> 
      </ToolBar> 
      <ToolBar Margin="16.4,0,-16.2,0" > 
       <Button Command="Forward" ToolTip="Proceed to the next page" /> 
       <Image Source="C:\Users\elgan\workspace\browser\riviam_windows\Images\navigateForward.png" Width="20" Height="20" /> 
      </ToolBar> 
     </ToolBarTray> 



    </DockPanel> 

はしかし、私は「フォワード」といくつかの例外を取得していますし、私がツールバーに追加しようとしている「戻る」ナビゲーションボタン。例外は言う:

PresentationFramework.dll

追加情報の 'System.Windows.Markup.XamlParseException' を投げ

例外を ' 'System.Windows.Baml2006.TypeConverterMarkupExtension'に値を指定すると、eが投げられましたxception。行番号「73」および行位置「22」。

は、その行が行<Button Command="Back" ToolTip="Return to the previous page"/>

であること、私は、ユーザーがブラウザ - に表示された前のページに戻ってナビゲートできるようにするために使用するボタンがありますが、私は私がやっていることはよく分かりませんこれは正しく...ここで私のC#コードからメソッドを呼び出す必要がありますか?それ、どうやったら出来るの?

+1

Command = "Back"これは正しくないようです。文字列にコマンドをバインドしないでください。 – Karolis

答えて

0

あなたのコマンドは、あなたのviewmodel上DelegateCommandオブジェクトを指している必要があります...

私は約6年間でのC#を使用していませんでしたので、それか、そのしくみを熟知していないです。ここではサンプルです:

ビュー:

<Button Command="{Binding SaveCommand}" /> 

のViewModel:

public DelegateCommand SaveCommand { get; private set; } 

public SampleViewModel() 
{ 
    SaveCommand = new DelegateCommand(Save); 
} 

private void Save() 
{ 
    // do something 
} 
0

あなたがApplicationCommands.CutようCommandの、このような構文を使用する必要がありますApplicationCommandsに建て使用したい場合。例えば

: - キャンセル印刷コマンドを表す値を取得します

CancelPrint

<Button Content="Cut" Command="ApplicationCommands.Cut"/> 
<Button Content="Copy" Command="ApplicationCommands.Copy"/> 
<Button Content="Paste" Command="ApplicationCommands.Paste"/> 

MSDNはavailable Application Commandsのリストについての良い記事があります。 SystemCAPS_pubpropertySystem_CAPS_static

閉じる - 閉じるコマンドを表す値を取得します。

ContextMenu - コンテキストメニューコマンドを表す値 を取得します。

...

1

あなたはMVVMパターンを使用したりしていない場合、私はあなたがいないと仮定します言うことはありませんので。この場合

、あなたはむしろ、例えばCommand

を使用するよりもButtonClickイベントをサブスクライブしたいと思う:

<Button Click="GoForward_OnClick" ToolTip="Proceed to the next page" /> 

そして、あなたのコードビハインドに(yourfile.xaml .cs)ボタンをクリックしたときに呼び出されるメソッドがあります。

private void GoForward_OnClick(object sender, RoutedEventArgs e) 
{ 
    // Your code logic goes here 
} 
関連する問題