2017-11-30 1 views
0

나는 프랙탈을 만드는 간단한 C# 콘솔 응용 프로그램을 가지고 있습니다. MacOS에서 Visual Studio Community를 사용합니다. 특정 크기 (wxh)의 비트 맵을 만듭니다. 모든 픽셀에 대해 계산 된 mandelbrotnumber에 따라 .SetPixel으로 색이 지정됩니다.COS를 사용하여 macOS에서 high-dpi 콘솔 응용 프로그램을 만드는 방법 (가능하다면)?

class Form1 : Form 
{ 
    //.. 
    public Form1() 
    { 
    //.. 
    AutoScaleMode = AutoScaleMode.Dpi; 
    } 
    //.. 
    private void DrawMandelbrot(object o, PaintEventArgs ea) 
    { 
    Bitmap bm = new Bitmap(w, h); 
    mandelb = CreateMandelbrot(bm); 
    ea.Graphics.DrawImage(mandelb, xMandelb, yMandelb, w, h); 
    } 
} 

높은 dpi 망막 화면이 있고 비트 맵이 매우 섬세하게 보이는 것을 제외하고는 정상적으로 작동합니다. 해상도 (dpi)를 얻을 수

 Graphics graphics = this.CreateGraphics(); 
     dpiX = graphics.DpiX; 

, 그러나 이것은 그냥 화면의 Form의 해상도 인 나에게 96을 제공합니다

내가 좋아하는 일을했습니다.

나는 비트 맵을 생성 한 직후에 아무런 이유없이 bm.SetResolution(144.0F, 144.0F);을 시도했다.

나는 더 복잡한 접근법을 찾았습니다. here을 찾았지만 프로그램이 충돌합니다. 아마도 (?) 내가 Macos에 있기 때문에 승격되는 모든 솔루션은 .dll이 [DllImport("user32.dll")]처럼 작동하지 않는다고 제안합니다. System.DllNotFoundException: user32.dll.

Form을 초기화하는 방법에 this.AutoScaleDimensions = new System.Drawing.SizeF(200F, 200F);을 추가하려고 시도했습니다.

심지어 WPF으로 전환해도 문제가되는 것처럼 보입니다. macOS에서는 전혀 불가능합니다. C#을 사용하여 모든 것이 가능할 지 궁금한가요?

전체 프로그램이 망막 dpi로 렌더링 할 필요는 없지만 픽셀별로 비트 맵 픽셀을 만들려면 고해상도 이미지를 얻으려면 다른 방법이 필요할 것입니까? 간단히 비트 맵을 더 작게 만들지 만 고해상도로 만들 수 있습니다. 물론 가장 좋은 해결책은 전체 응용 프로그램을 다시 작성하지 않고 화면의 사용 가능한 dpi를 기준으로 높은 dpi 해상도의 몇 줄의 코드로 완전한 Form 응용 프로그램을 만드는 것입니다.

.NET 설명서는 다음과 같습니다. 정말 쓸모가 없으니 여기 누군가가 해결책을 얻길 바랍니다.

추신 : 내 게시물을 downvoting하는 대신 내 게시물에 대한 비평이 무엇인지 들어 볼 수 있습니다. 그것은 중복인가? 나는 대답을 찾을 수있는 곳을 듣고 몇 시간 동안 수색을 해왔다. 더 많은 코드가 필요하십니까? 제공하는 해피 ...

답변

0

을위한 비주얼 스튜디오 2017 맥 지원 맥은 당신이 콘솔 애플리케이션을위한 코코아 (데스크탑) 응용 프로그램을 구축 할 수 있도록하기위한 맥 OS/OS X 개발

비주얼 스튜디오 2017에 대한 맥 OS. visualstudio.com

즉, 아니오 .NET Winforms 및 WPF입니다.

현재 시작할 수 : macOS development with Visual Studio for Mac.

(힌트 : 그것은 Xamarin.Mac 가이드의) 반응에 대한

+0

감사합니다. Retinascreen에서 제대로 렌더링 할 콘솔 응용 프로그램을 만들 수 없다는 것을 정확히 이해합니까?그리고 응용 프로그램은 제쳐두고 더 높은 해상도의 비트 맵을 만들 수 없습니까? 'SetResolution (144.0F, 144.0F)'을 사용하면 크기에 영향을 미치지 않는 것 같지만 뭔가 빠진 것 같습니다 ... – raoul

관련 문제