WPF项目的OpenGL版本错误

WPF项目的OpenGL版本错误,wpf,visual-studio,xaml,opengl,sharpgl,Wpf,Visual Studio,Xaml,Opengl,Sharpgl,我有两个独立的WPF项目。 我的目标是:改变项目B,使其具有与项目A相同的OpenGL对象实例版本 两者都使用以下行在某个点实例化变量“gl”: OpenGL gl = args.OpenGL; 设置断点并检查“gl”的对象属性后,我在项目a中看到以下内容: Version = "4.4.13084 Compatibility Profile Context 14.301.1001.0" 但在项目B中,我看到了以下内容: Version = "1.1.0" 关于“args”,两个项目均采用

我有两个独立的WPF项目。 我的目标是:改变项目B,使其具有与项目A相同的OpenGL对象实例版本

两者都使用以下行在某个点实例化变量“gl”:

OpenGL gl = args.OpenGL;
设置断点并检查“gl”的对象属性后,我在项目a中看到以下内容:

Version = "4.4.13084 Compatibility Profile Context 14.301.1001.0"
但在项目B中,我看到了以下内容:

Version = "1.1.0"
关于“args”,两个项目均采用以下方法实例化总账:

private void OpenGLControl_OpenGLInitialized(object sender, OpenGLEventArgs args)
两个项目都通过以下方式调用该方法:

((SharpGL.WPF.OpenGLControl)(target)).OpenGLInitialized += new SharpGL.SceneGraph.OpenGLEventHandler(this.OpenGLControl_OpenGLInitialized);
请注意,“args”不是从这里显式传入的。我认为函数必须在更深层的上下文中调用,比如OpenGLEventHandler。但是,我注意到args也是该函数的一个参数

public delegate void OpenGLEventHandler(object sender, OpenGLEventArgs args);
我无法访问OpenGLEventHandler的源代码,因为它位于SceneGraph.dll中

我想知道args变量是否由.config或.xaml文件确定,因为我的项目是从VisualStudio运行的WPF。然而,关于OpenGL的文件没有太大的区别

项目A的MainWindow.xaml:

<Window x:Class="ObjectLoadingSample.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Object LoadingSample" Height="600" Width="800"
        xmlns:sharpGL="clr-namespace:SharpGL.WPF;assembly=SharpGL.WPF">
    <Grid>
        <DockPanel>

            <ToolBarPanel DockPanel.Dock="Top">
                <Menu>
                    <MenuItem Header="_File">
                        <MenuItem x:Name="fileOpenItem" Header="_Open..." Click="fileOpenItem_Click" />
                    </MenuItem>
                </Menu>
            </ToolBarPanel>

            <ToolBarTray DockPanel.Dock="Top">
                <ToolBar>
                    <Label Target="{Binding ElementName=textBoxScale}">Scale: </Label>
                    <TextBox x:Name="textBoxScale" Width="60" IsEnabled="False">1</TextBox>
                    <CheckBox x:Name="checkBoxAutoScale" IsChecked="True" IsEnabled="False">Auto</CheckBox>
                    <Separator />
                    <Label Target="{Binding ElementName=comboBoxRenderMode}">Render Mode: </Label>
                    <ComboBox x:Name="comboBoxRenderMode" Width="100" SelectedIndex="1">
                        <ComboBoxItem>Immediate</ComboBoxItem>
                        <ComboBoxItem>Retained</ComboBoxItem>
                    </ComboBox>
                    <Label Target="{Binding ElementName=comboBoxPolygonMode}">Polygon Mode:</Label>
                    <ComboBox x:Name="comboBoxPolygonMode" Width="100" SelectedIndex="2" SelectionChanged="comboBoxPolygonMode_SelectionChanged">
                        <ComboBoxItem>Points</ComboBoxItem>
                        <ComboBoxItem>Lines</ComboBoxItem>
                        <ComboBoxItem>Polygons</ComboBoxItem>
                    </ComboBox>
                </ToolBar>
            </ToolBarTray>

            <sharpGL:OpenGLControl x:Name="openGlCtrl"
            OpenGLDraw="OpenGLControl_OpenGLDraw" OpenGLInitialized="OpenGLControl_OpenGLInitialized" 
            RenderContextType="FBO" Resized="OpenGLControl_Resized" />
        </DockPanel>
    </Grid>
</Window>

比例:
1.
自动的
渲染模式:
立即的
保留
多边形模式:
要点
线
多边形
项目B的MainWindow.xaml

<Window x:Class="ProjectBeta.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:sharpGL="clr-namespace:SharpGL.WPF;assembly=SharpGL.WPF"
        Title="MainWindow" Height="800" Width="800">
  <Grid>
    <sharpGL:OpenGLControl OpenGLDraw="OpenGLControl_OpenGLDraw" OpenGLVersion="OpenGL4_3"  OpenGLInitialized="OpenGLControl_OpenGLInitialized" DrawFPS="True" Margin="-3,0,3,0" />
  </Grid>
</Window>


还有其他文件,如App.config、App.xaml和Settings.Settings,但是,我不知道哪些文件最适合共享。

好吧,“Project B”要求一个明确的OpenGL版本,“Project A”不需要。@AndonM.Coleman真的吗?你看过版本了吗?我在中添加了它,以强制将其设置为版本4,而不是版本1。请不要因为你不知道答案就评论和否决我的问题。你到底有什么问题?我从来没有否决过你的问题,尽管你的态度很诱人。我只是尽力帮助你,这就是我得到的感谢。如果你希望在这个网站上得到帮助,你真的应该调整你的态度。在这些项目中有没有其他的区别,比如引用了哪些程序集,或者导出到输出目录的本机DLL?嗯,在我回答了你上次没有回复的评论之后,我的最后一个问题就被否决了。没有人回答,我这里有一个合法的问题,我正在努力解决。正如我在问题中所说,项目A有版本4,项目B有版本1。我的显式OpenGL版本请求是试图将项目B强制为版本4。这没有改变任何事情。