我目前正在与SharpDX合作,以定位为Win 8.1的项目,并且在页面上需要多个3D视口以及其他XAML元素。到目前为止,我已经能够通过Nuget安装SharpDx工具包,并能够运行标准工具包项目。但是,该项目使用SwapchainbackgroundPanel控件作为渲染3D内容的方法,如下所示。
mainpage.xaml
<SwapChainBackgroundPanel
x:Class="MyGame1.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:MyGame1"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignWidth="1280"
d:DesignHeight="800">
</SwapChainBackgroundPanel>
mainpage.xaml.cs
public sealed partial class MainPage
{
private readonly MyGame1 game;
public MainPage()
{
this.InitializeComponent();
game = new MyGame1();
this.Loaded += (sender, args) => game.Run(this);
}
}
根据我阅读的文档,SwapchainbackgroundPanel已被弃用以支持新引入的Swapchainpanel,但是当我试图用Swapchainpanel替换SwapchainbackgroundPanel时,我收到了一个错误。
。有人知道在不久的将来是否有一个计划来更新SharpDX工具包,以与Swapchainpanel一起使用,就像当前使用SwapchainbackgroundPanel一样?
谢谢!
directx 11.2构建已经完全支持与 SwapChainPanel
的集成。
我添加了一个演示此功能的示例。
首先,请确保您的项目参考DirectX 11.2组件 - 这涉及项目编辑,如下所述。
之后,根据需要编辑您的页面XAML,例如这样(简短省略了某些代码):
<Page ...>
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<SwapChainPanel x:Name="panel" x:FieldModifier="private" />
</Grid>
</Page>
然后您需要照常运行游戏:
using SharpDX.Toolkit;
public sealed partial class MainPage
{
private readonly Game _game;
public MainPage()
{
InitializeComponent();
_game = new MiniCubeGame();
_game.Run(panel);
}
}
如果这更适合您的体系结构,则可以将_game.Run(...)
调用转移到Loaded
事件处理程序。