我一直收到这个错误:
System.Runtime.InteropServices.COMException was thrown on "C:\Users\---\documents\visual studio 2010\Projects\TBrowser\TBrowser\TBrowserWindow.xaml": Error HRESULT E_FAIL has been returned from a call to a COM component.
但我的.xaml文件中没有COM
组件。它不断弹出并说错误的位置是第1行第1列,我只有Window
而没有别的:
<Window x:Class="TBrowser.TBrowserWindow"
xmlns:my="clr-namespace:TBrowser"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Height="800" Width="900" Icon="/TBrowser;component/Images/Icons/Icon.ico" MinHeight="143" MinWidth="358" Background="White" Loaded="Window_Loaded" Name="TBWindow1">
<Window.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Themes/Generic.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Window.Resources>
<DockPanel x:Name="Layout">
<StatusBar Height="24" Name="TBStatusBar1" Background="WhiteSmoke" BorderBrush="Black" BorderThickness="0,1,0,0" VerticalContentAlignment="Bottom" DockPanel.Dock="Bottom">
<StatusBarItem Width="300" HorizontalAlignment="Left" Padding="1" />
<StatusBarItem HorizontalAlignment="Right" Padding="0" Margin="1" VerticalContentAlignment="Stretch">
<ProgressBar Width="146" Height="18" HorizontalAlignment="Left" Margin="1" Name="TBProgessBar1"></ProgressBar>
</StatusBarItem>
</StatusBar>
<my:TBOutputPannel x:Name="TBOutputPannel1" DockPanel.Dock="Bottom" MinHeight="48" MaxHeight="200" Visibility="Collapsed" />
<my:TBControlBar Height="48" VerticalAlignment="Top" x:Name="TBControlBar1" DockPanel.Dock="Top">
<my:TBControlBar.ContextMenu>
<ContextMenu>
<MenuItem Header="Menubar" IsCheckable="True" IsChecked="True" />
<MenuItem Header="Favsbar" IsCheckable="True" IsChecked="True" />
<MenuItem Header="Statusbar" IsCheckable="True" IsChecked="True" />
</ContextMenu>
</my:TBControlBar.ContextMenu>
</my:TBControlBar>
<Grid DockPanel.Dock="Bottom">
<my:TBTabControl x:Name="TBTabControl1">
<my:TBAddTabItem Height="28" HorizontalAlignment="Left" IsSelected="False" Margin="0" x:Name="TBAddTabItem" VerticalAlignment="Top" Width="28"></my:TBAddTabItem>
</my:TBTabControl>
<Menu Height="24" Name="TBMenu1" VerticalAlignment="Top" Margin="0,29,0,0" Background="WhiteSmoke">
<MenuItem Header="File">
<MenuItem Header="New tab" InputGestureText="Ctrl+T" Click="MenuItem_Click">
<MenuItem.Icon>
<Image Source="/TBrowser;component/Images/Images/TBNewTabIcon1.png" />
</MenuItem.Icon>
</MenuItem>
<MenuItem Header="Duplicate tab" InputGestureText="Ctrl+K" Click="MenuItem_Click_1" />
<MenuItem Header="New window" InputGestureText="Ctrl+N" />
<MenuItem Header="New session" />
<MenuItem Command="ApplicationCommands.Open" Header="Open" />
<MenuItem Header="Edit with Notepad" />
<MenuItem Command="ApplicationCommands.Save" Header="Save" IsEnabled="False" />
<MenuItem Command="ApplicationCommands.SaveAs" Header="Save As..." InputGestureText="Ctrl+S" />
<MenuItem Header="Close tab" InputGestureText="Ctrl+W" />
<Separator />
<MenuItem Header="Page setup" />
<MenuItem Command="ApplicationCommands.Print" Header="Print" InputGestureText="Ctrl+P" />
<MenuItem Command="ApplicationCommands.PrintPreview" Header="Print preview" />
<MenuItem />
</MenuItem>
</Menu>
<ToolBar Height="24" Margin="0,52,0,0" Name="TBFavsbar1" VerticalAlignment="Top" Style="{StaticResource TBFavsbar}">
<my:TBFavsItem isAdder="True" IconSource="/TBrowser;component/Images/Images/TBAddFavs1.png" Margin="2,1,0,0" />
<Separator Margin="2,1,0,0" />
</ToolBar>
</Grid>
</DockPanel>
<Window.TaskbarItemInfo>
<TaskbarItemInfo x:Name="Display" />
</Window.TaskbarItemInfo>
</Window>
我甚至不断收到此错误:
System.NullReferenceException was unhandled by user code
Message=Object reference not set to an instance of an object.
Source=TBrowser
StackTrace:
at TBrowser.TBrowserWindow.TBMenubar1ShowButton_Checked(Object sender, RoutedEventArgs e) in C:\Users\---\documents\visual studio 2010\Projects\TBrowser\TBrowser\TBrowserWindow.xaml.cs:line 137
at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
at System.Windows.UIElement.RaiseEvent(RoutedEventArgs e)
at System.Windows.Controls.MenuItem.OnChecked(RoutedEventArgs e)
at System.Windows.Controls.MenuItem.OnIsCheckedChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
at System.Windows.DependencyObject.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
at System.Windows.FrameworkElement.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
at System.Windows.DependencyObject.NotifyPropertyChange(DependencyPropertyChangedEventArgs args)
at System.Windows.DependencyObject.UpdateEffectiveValue(EntryIndex entryIndex, DependencyProperty dp, PropertyMetadata metadata, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType)
at System.Windows.DependencyObject.SetValueCommon(DependencyProperty dp, Object value, PropertyMetadata metadata, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType, Boolean isInternal)
at System.Windows.Baml2006.WpfKnownMemberInvoker.SetValue(Object instance, Object value)
at MS.Internal.Xaml.Runtime.ClrObjectRuntime.SetValue(XamlMember member, Object obj, Object value)
at MS.Internal.Xaml.Runtime.ClrObjectRuntime.SetValue(Object inst, XamlMember property, Object value)
这就是我正在使用的:
private void TBMenubar1ShowButton_Checked(object sender, RoutedEventArgs e)
{
TBMenu1.Visibility = System.Windows.Visibility.Visible;
TBrowser.Properties.Settings.Default.Menubar = System.Windows.Visibility.Visible;
}
我不知道怎么回事。
答案 0 :(得分:2)
我认为它是通过向需要32位INT的应用程序发送64位INT来解决的(如果是这个问题),请遵循以下步骤:
右键单击项目(在解决方案资源管理器中) - &gt;属性,构建选项卡,平台目标集x86。然后做一个Clean-Build并给它一个旋转。