ไม่สามารถปิดใช้งานการปรับ DPI สำหรับ Visual Studio 2012


11

ฉันต้องการใช้งาน DPI สูงสำหรับแอปพลิเคชันส่วนใหญ่ที่ฉันใช้บนแล็ปท็อป 14 "1920x1080 ของฉันยกเว้น Visual Studio บางตัวที่ได้รับประโยชน์จากพื้นที่พิเศษอย่างไรก็ตามการตั้งค่า" ปิดการใช้งาน DPI สูง "ในความเข้ากันได้นั้น ใช้ Windows 8


Synetech แก้ไขคำถามนี้ ฉันไม่สามารถหาวิธีแสดงความคิดเห็นในการแก้ไขของเขาหรือส่งข้อความถึงเขาได้ดังนั้นฉันจะโพสต์เหตุผลที่นี่: คำถามนี้เฉพาะกับ VS 2012 (และอาจเป็นแอปพลิเคชันอื่น ๆ ที่ใช้เฟรมเวิร์กเฉพาะเช่น WPF) การตั้งค่าไม่ทำงาน นอกจากนี้ยังแทบจะไม่เฉพาะเจาะจงกับ Windows 8 แต่ฉันยังไม่ได้ทดสอบกับ 7 / Vista
Aleksandr Dubinsky

ฉันลบWindowsแท็กออกเนื่องจากควรใช้เฉพาะเมื่อมีผลกับทุกเวอร์ชันWindowsเนื่องจากการใช้Windows 8แท็กนั้นกับคุณเท่านั้น
Ramhound

คำตอบ:


2

ฉันถามChris Jackson, Microsoft AppCompat guy ; ไม่มีวิธีการทำเช่นนี้

เราไม่มีความสามารถเช่นนี้โหมดปรับขนาดเป็นสิ่งที่เราต้องจัดการกับสถานการณ์เหล่านั้น ใช่มีบางสิ่งที่ชัดเจนเกี่ยวกับวิธีการที่เราทำ (ฉันเกลียดการคลุมเครือเกินไป) แต่ก็ยากที่จะได้รับการแก้ไขที่สองซึ่งได้รับการอนุมัติซึ่งทางเทคนิคแก้ไขสิ่งเดียวกันเนื่องจากนั่นหมายความว่าวิศวกรไม่ได้ทำอะไรอย่างอื่น ทำให้โลกนี้น่าอยู่ขึ้น

ฉันยังถามเกือบสิ่งเดียวกันที่นี่


2
ขอบคุณสำหรับการตอบกลับของคุณ. เมื่อได้ยินสิ่งนี้และเมื่อได้ยินความคิดเห็นอื่น ๆ เกี่ยวกับการพัฒนา C # เราจะได้รับความประทับใจว่า Microsoft ไม่มีเงินและแทบจะไม่มีคนทำงานให้ ไม่มีความสนใจในรายละเอียด สิ่งเล็ก ๆ น้อย ๆ ไม่เคยได้รับการแก้ไข ทั้งหมดในชื่อ "เราไม่มีทรัพยากร" MS มีประสิทธิภาพเพียงใด อย่างไรก็ตามนี่เป็นเรื่องใหญ่เพราะฉันจ่ายเงินดอลล่าร์เพื่อการแสดงผลที่มีประโยชน์ต่อแอพที่หิวจอ ฉันได้ปิด High DPI ทั้งหมดแล้ว แต่ทำไมแอพอื่น ๆ ถึงเล็กมาก? DPI ต่อแอพแรงหรือไม่ Chris บอกเป็นนัยว่าการแก้ไขนั้นง่าย แต่ "ต้องห้าม"
Aleksandr Dubinsky

@AleksandrDubinsky - หากคุณได้รับความประทับใจนั้นฉันไม่ทราบว่าสิ่งที่ได้ยินของคุณ แต่สิ่งที่ Microsoft ทำ มีการปรับปรุงหลายร้อยอย่างระหว่าง. NET 4.0 และ. NET 4.5
Ramhound

@Rahmound Eric Lippert ตอบคำถาม SO ว่าทำไม C # ไม่สามารถอนุมานประเภททั่วไปสำหรับตัวสร้างด้วยบางสิ่งบางอย่างเช่น "ไม่มีปัญหาจริงมันจะเหมือนกับอนุมานพวกเขาสำหรับวิธีการ แต่เรามีงบประมาณ จำกัด [- เยาห์ ถูกต้อง] และ btw ความสอดคล้องของภาษามีความสำคัญต่ำ " ตัวอย่างอื่น ๆ ใน C # เป็นข้อ จำกัด ประเภททั่วไปสำหรับ Enums และผู้ได้รับมอบหมายซึ่งเป็นสิ่งที่ง่ายต่อการปฏิบัติ หรือเช่น Word / Excel 2010 ยังคงมีพฤติกรรม Alt + Tab ที่แปลกประหลาดเพราะไม่มีใครใส่ใจที่จะเขียน hacks รอบ MDI เก่าอีกครั้ง หรือ Win8 ทั้งหมดที่ไม่ใช่รถไฟใต้ดิน รายการยังคงดำเนินต่อไปรวมถึงคำตอบนี้
Aleksandr Dubinsky

ปรัชญาของ @Rahmound MS เป็นเพียงแค่นี้: การเพิ่มคุณสมบัติใหม่นั้นยอดเยี่ยม การปรับปรุงสิ่งที่เขียนไว้แล้วคือ "การสูญเสียทรัพยากรอันมีค่าของเราไปอย่างไร้ค่า" แม้ว่าจะไม่มีคุณสมบัติที่จะเพิ่มอีกต่อไป นั่นไม่สอดคล้องกับจำนวนเงินที่ MS มีอยู่และใช้เงินจริง ๆ เมื่อเวลาผ่านไปหลายทศวรรษ กล่องโต้ตอบครึ่งหนึ่งของ Word / Excel มีมาก่อน Office 95! บวกกับความบ้าคลั่งแบบหลายหน้าต่าง Visual Studio เป็นความเจ็บปวดที่ต้องใช้เมื่อพบ Netbeans GUI ของ VS ถูกเขียนขึ้นใหม่ทั้งหมดใน WPF สำหรับปี 2010 และไม่มีอะไรดีขึ้นที่ได้รับการปรับปรุง ภาวะหยุดนิ่ง ยอดเยี่ยมชะงักงันปลอบโยน
Aleksandr Dubinsky

MS เป็นคอร์ปขนาดใหญ่ ซึ่งหมายความว่าในอเมริกาพวกเขามีฐานพนักงานจำนวนมาก แต่มีเพียงไม่กี่คนที่ทำงานได้จริง ทุกคนต้องการทำงานเพื่อ M $ แต่ไม่มีใครทำเพื่อความรักของการเข้ารหัสหรือทำน้อยมากอีกต่อไป
Motes

17

นี่เป็นไปได้

ฉันลองสิ่งนี้บน Windows 8 และทำงานได้อย่างสมบูรณ์:

  1. ไปที่ Visual Studio Shortcut / launcher ของแอป
  2. คลิกขวาและแก้ไขปัญหาความเข้ากันได้
  3. โปรแกรมแก้ไขปัญหาต่อไป
  4. แก้ไขปัญหาโปรแกรม
  5. เห็บ: โปรแกรมเปิดขึ้น แต่ไม่แสดงอย่างถูกต้อง
  6. โปรแกรมทดสอบ ..
  7. ใช่บันทึกการเปลี่ยนแปลง

คุณพร้อมแล้ว!


ทำงานบน Visual Studio 2012 Update 5 บน Windows 8
rtc11

1
ทำงานร่วมกับ VS 2015 บน Windows 10 ยกเว้นคุณต้องค้นหาตัวเรียกใช้งานแอปผ่านเมนูเริ่มต้นของคุณและเปิดตำแหน่งไฟล์ทางลัดเนื่องจากรายการเมนูแก้ไขปัญหาความเข้ากันได้นั้นใช้ได้เฉพาะเมื่อคุณคลิกขวาจากทางลัดใน windows explorer
Tjaart

ทำงานกับ VS 2015 บน windows 8.1
Zoomzoom

สิ่งนี้ได้ดักฟังฉันมาระยะหนึ่งแล้ว มันทำงานได้อย่างสมบูรณ์ขอบคุณ!
RyanOC

ทำงานกับ VS 2017 บน windows 10
Nick Tsai

16

นี่เป็นไปได้อย่างแน่นอน ฉันใช้การตั้งค่า "ความเข้ากันได้" กับไฟล์โปรแกรมที่ต้องทำ แต่ด้วยเหตุผลบางอย่างที่ไม่สามารถใช้ได้กับ VS อย่างไรก็ตามคีย์รีจิสตรีเทียบเท่าทำงานได้ดี ที่สำคัญคือHKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layersและคุณเพียงแค่ต้องเพิ่มค่าสตริง "~ HIGHDPIAWARE" (เช่นเดียวกับการทำเครื่องหมายในกล่องนั้นในแท็บความเข้ากันได้ของคุณสมบัติของปฏิบัติการ) หรือคุณสามารถเรียกใช้สิ่งนี้:

reg เพิ่ม "NT \ CurrentVersion \ AppCompatFlags \ Layers" / v "HKCU \ Software \ Microsoft \ Windows เส้นทางแบบเต็มไปยังปฏิบัติการ" / t REG_SZ / d "~ HIGHDPIAWARE"


1
ยินดีต้อนรับสู่ SU! คำตอบสำหรับลิงก์อย่างเดียวถือว่าไม่เป็นข้อผิดพลาดเนื่องจากอาจเป็นไปได้ว่าการเชื่อมโยงในอนาคตจะเกิดขึ้น โปรดแก้ไขคำตอบของคุณและรวมถึงข้อมูลที่เกี่ยวข้องโดยตรงและรวมถึงลิงค์เป็นการอ้างอิงแหล่งที่มา
Ƭᴇcʜιᴇ007

สิ่งนี้จะทำงานเฉพาะสำหรับ VS หรือไม่ ฉันไม่เห็นสิ่งที่ระบุ exe
Aleksandr Dubinsky

ใช่ขออภัยมาร์กอัปของ Aleksandr SU ได้ลบตัวยึดตำแหน่ง ตรวจสอบคำตอบอีกครั้ง
futuresandwich

ยังใช้งานได้ใน Visual Studio 2013 btw
Brad Bamford

สำหรับ Visual Studio 2013 ในเส้นทางรีจิสทรีที่ระบุฉันมีคีย์สตริงต่อไปนี้: C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exeด้วยค่า~ RUNASADMIN HIGHDPIAWARERun as Admin และ No Scaling
Ivan Akcheurov
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.