简体   繁体   English

尝试在Visual Studio 2008中编辑UI时出现WPF设计器异常

[英]WPF Designer exception while trying to edit UI in Visual studio 2008

I have VS2008 with .net 3.5 SP1 installed on my machine, I have written one simple application with two listviews and databinding, My application compiles fine and I am able to run it, but when I try to open designer to edit controls, I get following error. 我在计算机上安装了VS2008和.net 3.5 SP1,我编写了一个带有两个列表视图和数据绑定的简单应用程序,我的应用程序可以很好地编译并且可以运行它,但是当我尝试打开设计器来编辑控件时,我得到了跟随错误。 I am not getting why this is happening. 我不明白为什么会这样。 Any idea...see xaml below this error message 任何想法...请参阅此错误消息下方的XAML

Type 'MS.Internal.Permissions.UserInitiatedNavigationPermission' in Assembly 'PresentationFramework, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' is not marked as serializable. 程序集“ PresentationFramework,版本= 3.0.0.0,区域性=中性,PublicKeyToken = 31bf3856ad364e35”中的类型“ MS.Internal.Permissions.UserInitiatedNavigationPermission”未标记为可序列化。 at System.Runtime.Serialization.FormatterServices.InternalGetSerializableMembers(RuntimeType type) at System.Runtime.Serialization.FormatterServices.GetSerializableMembers(Type type, StreamingContext context) at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitMemberInfo() at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize(Object obj, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter, ObjectWriter objectWriter) at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.Serialize(Object obj, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter, ObjectWriter objectWriter) at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Write(WriteObjectInfo objectInfo, NameInfo memberNameInfo, NameInfo typeNameInfo) at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Se 在System.Runtime.Serialization.FormatterServices.InternalGetSerializableMembers(RuntimeType type)在System.Runtime.Serialization.FormatterServices.GetSerializableMembers(Type type,StreamingContext context)在System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitMemberInfo()在System。 Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize(System。 ,System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Write(WriteObjectInfo objectInfo,NameInfo memberNameInfo,NameInfo typeNameInfo)的System.Runtime.Serialization.Formatters.Binary中的StreamingContext上下文,SerObjectInfoInit,SerObjectInfoInit,IFormatterConverter转换器,ObjectWriter objectWriter)。硒 rialize(Object graph, Header[] inHeaders, __BinaryWriter serWriter, Boolean fCheck) at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph, Header[] headers, Boolean fCheck) at System.Runtime.Remoting.Channels.CrossAppDomainSerializer.SerializeObject(Object obj, MemoryStream stm) at System.AppDomain.Serialize(Object o) at System.AppDomain.MarshalObject(Object o) at System.Threading.CompressedStack.GetDomainCompressedStack(SafeCompressedStackHandle compressedStack, Int32 index) at System.Security.PermissionListSet.CreateCompressedState(CompressedStack cs, CompressedStack innerCS) at System.Threading.CompressedStack.CompleteConstruction(CompressedStack innerCS) at System.Threading.CompressedStack.GetCompressedStack(StackCrawlMark& stackMark) at System.Security.SecurityContext.Capture(ExecutionContext currThreadEC, StackCrawlMark& stackMark) at System.Threading.ExecutionContext.Capture(StackCrawlMark& stackMark) at System.Threa System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(流序列化Stream,对象图,Header []标头,布尔值fCheck)在System.Runtime处出现rialize(对象图,Header [] inHeaders,__ BinaryWriter serWriter,布尔值fCheck)。 Remoting.Channels.CrossAppDomainSerializer.SerializeObject(Object obj,MemoryStream stm)在System.AppDomain.Serialize(Object o)在System.AppDomain.MarshalObject(Object o)在System.Threading.CompressedStack.GetDomainCompressedStack(SafeCompressedStackHandle compressionStack,Int32 index) System.Threading.CompressedStack.CompleteConstruction(CompressedStack innerCS)的System.Security.PermissionListSet.CreateCompressedState(CompressedStack cs,CompressedStack innerCS)System.Security.SecurityContext.Capture(ExecutionContext currency)的System.Threading.CompressedStack.GetCompressedStack(StackCrawlMark&stackMark)位于System.Threa的System.Threading.ExecutionContext.Capture(StackCrawlMark&stackMark)的StackCrawlMark&stackMark) ding.ExecutionContext.Capture() at System.Windows.Threading.Dispatcher.BeginInvokeImpl(DispatcherPriority priority, Delegate method, Object args, Boolean isSingleParameter) at System.Windows.Threading.Dispatcher.BeginInvoke(DispatcherPriority priority, Delegate method, Object arg) at System.Windows.Input.CommandManager.RaiseRequerySuggested() at System.Windows.Input.CommandManager.InvalidateRequerySuggested() at Microsoft.Windows.Design.Interaction.Tool.TaskCollection.InsertItem(Int32 index, Task item) at System.Collections.ObjectModel.Collection`1.Add(T item) at Microsoft.Windows.Design.Interaction.SelectionTool..ctor() at MS.Internal.Providers.VSActiveToolProvider.SelectionToolFactory.TryCreateTool[T](T& tool) at MS.Internal.Host.ToolSubsystem.ActivateTool(ToolFactory toolFactory) at MS.Internal.Host.ToolSubsystem..ctor(EditingContext editingContext, DesignerContext designerContext) at MS.Internal.Host.Designer.Load() at MS.Internal.Designer.VSDesigner.Load() at MS.Internal.Designer. System.Windows.Threading.Dispatcher.BeginInvokeImpl(DispatcherPriority优先级,Delegate方法,对象args,布尔型isSingleParameter)在System.Windows.Threading.Dispatcher.BeginInvoke(DispatcherPriority优先级,Delegate方法,对象arg)处的ding.ExecutionContext.Capture()在System.Windows.Input.CommandManager.RaiseRequerySuggested()在System.Windows.Input.CommandManager.InvalidateRequerySuggested()在Microsoft.Windows.Design.Interaction.Tool.TaskCollection.InsertItem(Int32索引,任务项)在System.Collections。 MS.Internal.Providers.VSActiveToolProvider.SelectionToolFactory.TryCreateTool [T](T&tool)的Microsoft.Windows.Design.Interaction.SelectionTool..ctor()的Microsoft.Windows.Design.Interaction.SelectionTool..ctor()(MS.Internal的ObjectModel.Collection`1.Add(T项目)。 MS.Internal.Host.ToolSubsystem..ctor(MS.Internal.Host.Designer.Load()的MS.Internal.Host.ToolSubsystem..ctor(MS.Internal.Designer.VSDesigner.Load()上的Host.ToolSubsystem.ActivateTool(ToolFactory toolFactory) ),请访问MS.Internal.Designer。 VSIsolatedDesigner.VSIsolatedView.Load() at MS.Internal.Designer.VSIsolatedDesigner.VSIsolatedDesignerFactory.Load(IsolatedView view) at MS.Internal.Host.Isolation.IsolatedDesigner.BootstrapProxy.LoadDesigner(IsolatedDesignerFactory factory, IsolatedView view) at MS.Internal.Host.Isolation.IsolatedDesigner.BootstrapProxy.LoadDesigner(IsolatedDesignerFactory factory, IsolatedView view) at MS.Internal.Host.Isolation.IsolatedDesigner.Load() at MS.Internal.Designer.DesignerPane.LoadDesignerView() MS.Internal.Designer.VSIsolatedDesigner.VSIsolatedDesignerFactory.Load(IsolatedView视图)处的MSI.Internal.Host.Isolation.IsolatedDesigner.BootstrapProxy.LoadDesigner(IsolatedDesignerFactory工厂,IsolatedView视图)处的VSIsolatedDesigner.VSIsolatedView.Load() MS.Internal.Designer.DesignerPane.LoadDesignerView()处MS.Internal.Host.Isolation.IsolatedDesigner.Load()处的.Isolation.IsolatedDesigner.BootstrapProxy.LoadDesigner(IsolatedDesignerFactory工厂,IsolatedView视图)

XAML : XAML:

<Grid Name="pngrid_Base" Height="auto" Width="auto" Background="Beige">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="auto" MinWidth="221"></ColumnDefinition>
        <ColumnDefinition Width="auto" MinWidth="1" MaxWidth="1"></ColumnDefinition>
        <ColumnDefinition Width="auto"></ColumnDefinition>
    </Grid.ColumnDefinitions>
        <Grid Name="pngrid_BaseForAll" Grid.Column="0" Width="auto" HorizontalAlignment="Left" Background="#FFD8E4F8">
     <Grid.RowDefinitions>
        <RowDefinition Height="30*"/>
        <RowDefinition Height="164*" />
        <RowDefinition Height="35*" />
        <RowDefinition Height="164*" />
        <RowDefinition Height="40*" />
    </Grid.RowDefinitions>
        <ListView  Name="lstview_Unack" Grid.Row="1" Margin="2,0,0,0" SelectionMode="Extended"  LostFocus="lstview_Unack_LostFocus" 
                                                                                                MouseRightButtonDown="lstview_Unack_MouseRightButtonDown">

            <ListView.ItemContainerStyle>
                <Style TargetType="ListViewItem">
                    <Setter Property="IsSelected" Value="{Binding Path=IsSelected, Mode=TwoWay}" />
                </Style>
            </ListView.ItemContainerStyle>
        </ListView>
        <Button Grid.Row="2" HorizontalAlignment="Left" Margin="24,14,0,5" Name="btnFreeze">Freeze</Button>
            <Button Grid.Row="2" HorizontalAlignment="Left" Margin="12,7,0,5" Name="btnAcknowledge" Width="96">Acknowledge</Button>
        <ListView  Name = "lstview_Ack" Grid.Row="3" Margin="2,1,0,0" LostFocus="lstview_Ack_LostFocus" SelectionMode="Extended" MouseRightButtonDown="lstview_Ack_MouseRightButtonDown">
            <ListView.ItemContainerStyle>
                <Style TargetType="ListViewItem">
                    <Setter Property="IsSelected" Value="{Binding Path=IsSelected, Mode=TwoWay}" />                            
                </Style>
            </ListView.ItemContainerStyle>
        </ListView>


        <Button Grid.Row="4" HorizontalAlignment="Left" Margin="16,12,0,7" Name="Clear" Width="78">Clear</Button>
    <TextBox Margin="110,6,32,5" Name="FilterText" TextChanged="FilterText_TextChanged" />
    <ComboBox HorizontalAlignment="Left" Margin="14,5,0,4" Name="comboColumnList" Width="94" />
</Grid>
    <GridSplitter Grid.Column="1" Name="gridSplitter1" Width="2" HorizontalContentAlignment="Center" VerticalContentAlignment="Stretch" HorizontalAlignment="Left" Background="Azure" />
    <Grid Name="pnGridForTreeView" Grid.Column="2" Width="200" Grid.ColumnSpan="2">
        <my:TrinityDeviceTree  x:Name ="m_objDeviceTree" Height="auto" Width="auto">

        </my:TrinityDeviceTree>
    </Grid>

</Grid>

I've tested your code inside VS2008 with .NET 3.5 SP1 and if i remove declaration for TrinityDeviceTree it works fine with the designer. 我已经使用.NET 3.5 SP1在VS2008内测试了您的代码,如果我删除了TrinityDeviceTree的声明,则可以在设计器中正常工作。 Maybe you should chek upon that UserControl and look there for errors. 也许您应该检查该UserControl并在其中查找错误。 Also try to make a clean of your project and a rebuild, sometimes it works for visual designer's issues. 还要尝试清理您的项目并进行重建,有时它可以解决视觉设计师的问题。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM