Windows 8 애플리케이션에서 Win2D를 사용하기 시작하려고합니다. 필자는 단지 새 프로젝트에 라이브러리를 설치하려고 시도했지만 기능 중 하나를 사용하여 원을 그렸지만 이해할 수없는 오류로 더 이상 갈 수는 없습니다.표현식에 클래스 유형이 있어야합니다 (C++의 초급 오류 Win2D를 사용하는 Windows 8 앱)
다음은 Mainpage.xaml.cpp 파일 내에 자동으로 만들어진 이벤트 처리기입니다. 내 오류는 함수 내에서 단일 코드 줄 시작 부분에있는 'args '부분에 빨간색 밑줄이 그 어져 있음을 알 수 있습니다. 'args'아래 빨간색 선 위로 마우스를 가져 가면 "표현식에 클래스 유형이 있어야합니다"라는 메시지가 표시됩니다. 아무도 이것으로 도울 수 있습니까? 에서 MainPage.xaml에서
<Page
x:Class="AdditiveSignals.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:AdditiveSignals"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:canvas="using:Microsoft.Graphics.Canvas.UI.Xaml"
mc:Ignorable="d"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Grid>
<canvas:CanvasAnimatedControl Draw="CanvasAnimatedControl_Draw" />
</Grid>
</Page>
에서 MainPage.xaml
에서 MainPage.xaml.h//
// MainPage.xaml.h
// Declaration of the MainPage class.
//
#pragma once
#include "MainPage.g.h"
namespace AdditiveSignals
{
/// <summary>
/// An empty page that can be used on its own or navigated to within a Frame.
/// </summary>
public ref class MainPage sealed
{
public:
MainPage();
protected:
virtual void OnNavigatedTo(Windows::UI::Xaml::Navigation::NavigationEventArgs^ e) override;
private:
void CanvasAnimatedControl_Draw(Microsoft::Graphics::Canvas::UI::Xaml::ICanvasAnimatedControl^ sender, Microsoft::Graphics::Canvas::UI::Xaml::CanvasAnimatedDrawEventArgs^ args);
};
}
에서
필요한 경우void AdditiveSignals::MainPage::CanvasAnimatedControl_Draw(Microsoft::Graphics::Canvas::UI::Xaml::ICanvasAnimatedControl^ sender, Microsoft::Graphics::Canvas::UI::Xaml::CanvasAnimatedDrawEventArgs^ args)
{
args.DrawingSession.DrawCircle(640, 360, 30.0f, Colors->Blue);
}
은 여기에 전체 코드이다. cpp (전체 코드)
//
// MainPage.xaml.cpp
// Implementation of the MainPage class.
//
#include "pch.h"
#include "MainPage.xaml.h"
using namespace AdditiveSignals;
using namespace Platform;
using namespace Windows::Foundation;
using namespace Windows::Foundation::Collections;
using namespace Windows::UI;
using namespace Windows::UI::Xaml;
using namespace Windows::UI::Xaml::Controls;
using namespace Windows::UI::Xaml::Controls::Primitives;
using namespace Windows::UI::Xaml::Data;
using namespace Windows::UI::Xaml::Input;
using namespace Windows::UI::Xaml::Media;
using namespace Windows::UI::Xaml::Navigation;
// The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=234238
MainPage::MainPage()
{
InitializeComponent();
}
/// <summary>
/// Invoked when this page is about to be displayed in a Frame.
/// </summary>
/// <param name="e">Event data that describes how this page was reached. The Parameter
/// property is typically used to configure the page.</param>
void MainPage::OnNavigatedTo(NavigationEventArgs^ e)
{
(void) e; // Unused parameter
// TODO: Prepare page for display here.
// TODO: If your application contains multiple pages, ensure that you are
// handling the hardware Back button by registering for the
// Windows::Phone::UI::Input::HardwareButtons.BackPressed event.
// If you are using the NavigationHelper provided by some templates,
// this event is handled for you.
}
//This event handler will be called 60 times per second
void AdditiveSignals::MainPage::CanvasAnimatedControl_Draw(Microsoft::Graphics::Canvas::UI::Xaml::ICanvasAnimatedControl^ sender, Microsoft::Graphics::Canvas::UI::Xaml::CanvasAnimatedDrawEventArgs^ args)
{
args.DrawingSession.DrawCircle(640, 360, 30.0f, Colors->Blue);
}
이것은 C++/CLI 소스이므로 C++/CLI 태그 아래에 있어야한다고 생각합니다. [read more] (https://en.wikipedia.org/wiki/C%2B%2B/CLI) –
UI 코드에는 C++/CLI를 사용하면 안됩니다. –