Мой первоначальный инстинкт - получить текущую настройку DpiY системы через экземпляр Graphics, но я не могу понять, как ее получить.Как получить размер шрифта в пикселях?
Spellunking через отражатель я вижу, что Microsoft управляет его использованием небезопасного кода:
IntPtr dC = UnsafeNativeMethods.GetDC(NativeMethods.NullHandleRef);
try
{
using (Graphics graphics = Graphics.FromHdcInternal(dC))
{
float num = graphics.DpiY;
}
}
Что такое управляемый эквивалент способ построения графика, когда я не имею графики?
Я пробовал:
using (Graphics g = Graphics.FromHdc(IntPtr.Zero))
{
return font.GetHeight(g.DpiY);
}
Но что бросает Значение не может быть пустым исключение.
Обычно, когда я получаю до конца моего вопроса и выяснить, что мой * реальный вопрос *, я меняю свой титул. Просмотрите мое редактирование, чтобы убедиться, что я не задал ваш вопрос. – Will
@Will Это было своего рода вопросом в моем первоначальном вопросе. Я не * всегда * заинтересован в размере шрифта (например, размер управления, размер изображения, масштаб). я боялся, что кто-то может закрыть вопрос и попытаться использовать «MeasureText», чтобы получить высоту шрифта. Люди склонны смешивать вопрос с применимостью. Я пробовал пропустить рассуждение, имея только мой вопрос. Но люди отказываются отвечать на него, не зная, почему я хочу что-то сделать. у меня были исчерпывающие примеры * почему *, тогда у вас есть Джон Сондерс, потому что он сердитый (http://stackoverflow.com/q/8141795/12597) –
@Will Вот еще один хороший пример проблемы. Парень спросил точный вопрос, который у меня был *** LINQ где или фильтр C# *** (http://stackoverflow.com/questions/5954965/linq-where-or-filter-c-sharp). Ответ обманул вопрос, отвечая вместо примера. Сегодня у меня есть тот же вопрос, но существующие ответы не отвечают на вопрос. я должен построить тот же самый вопрос (слова в названии перегруппированы, чтобы выглядеть достаточно различным *** Фильтр LINQ, где или *** (http://stackoverflow.com/questions/8900131/linq-filter-where-or) –