🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: alt.pl.comp.lang.csharp
5 messages
5 total messages Started by marcin Sun, 06 Dec 2009 23:48
wyśrodkowany tekst i jego współrzędne
#21232
Author: marcin
Date: Sun, 06 Dec 2009 23:48
35 lines
1955 bytes
Witam,

Mam następujący problem. Rysuję tekst wyśrodkowany za pomocą funkcji 
DrawString():

--
Format.Alignment = StringAlignment.Center;
Format.LineAlignment = StringAlignment.Center;

g.DrawString(Text, Font, ForeBrush, Bounds, Format);
--

I mam teraz pytanie. Czy jest możliwe uzyskanie współrzędnych pod którymi 
został umieszczony tekst przez funkcję DrawString?
Wartości Bounds są mi znane jednak stanowią one pole docelowe dla tekstu 
wyśrodkowanego a ja chcę uzyskać dokładnie pole zajmowane przez
automatycznie wyśrodkowany tekst funkcją DrawString. Rozmiar tekstu mogę 
spokojnie pobrać funkcją MeasureString(), natomiast co z jego położeniem, 
skoro był centrowany automatycznie? Czy jest to wykonalne?


Z góry dziękuję za pomoc.

-- 
Pozdrawiam
Marcin




__________ Informacja programu ESET Smart Security, wersja bazy sygnatur wirusow 4665 (20091206) __________

Wiadomosc zostala sprawdzona przez program ESET Smart Security.

http://www.eset.pl lub http://www.eset.com 
Re: wyśrodkowany tekst i jego współrzędne
#21233
Author: Paweł Kierski
Date: Mon, 07 Dec 2009 12:23
30 lines
2008 bytes
marcin wrote:
> Witam,
> 
> Mam następujący problem. Rysuję tekst wyśrodkowany za pomocą funkcji 
> DrawString():
> 
> -- 
> Format.Alignment = StringAlignment.Center;
> Format.LineAlignment = StringAlignment.Center;
> 
> g.DrawString(Text, Font, ForeBrush, Bounds, Format);
> -- 
> 
> I mam teraz pytanie. Czy jest możliwe uzyskanie współrzędnych pod 
> którymi został umieszczony tekst przez funkcję DrawString?
> Wartości Bounds są mi znane jednak stanowią one pole docelowe dla tekstu 
> wyśrodkowanego a ja chcę uzyskać dokładnie pole zajmowane przez
> automatycznie wyśrodkowany tekst funkcją DrawString. Rozmiar tekstu mogę 
> spokojnie pobrać funkcją MeasureString(), natomiast co z jego 
> położeniem, skoro był centrowany automatycznie? Czy jest to wykonalne?
> 

   Może podejdź do sprawy odwrotnie - skoro znasz rozmiar tekstu
i rozmiar pola, w którym ma być umieszczony, to sam go wycentruj:
lewa krawędź tekstu = (lewa krawędź pola + szerokość tekstu)/2
(analogicznie góra-dół). Narysujesz sam w odpowiednim miejscu.

-- 
     Paweł Kierski
     news@pkierski.net
Re: wyśrodkowany tekst i jego współrzędne
#21234
Author: marcin
Date: Mon, 07 Dec 2009 18:16
44 lines
2835 bytes
Użytkownik "Paweł Kierski" <news@pkierski.net> napisał w wiadomości 
news:hfis3q$59m$1@news.onet.pl...
> marcin wrote:
>> Witam,
>>
>> Mam następujący problem. Rysuję tekst wyśrodkowany za pomocą funkcji 
>> DrawString():
>>
>> -- 
>> Format.Alignment = StringAlignment.Center;
>> Format.LineAlignment = StringAlignment.Center;
>>
>> g.DrawString(Text, Font, ForeBrush, Bounds, Format);
>> -- 
>>
>> I mam teraz pytanie. Czy jest możliwe uzyskanie współrzędnych pod którymi 
>> został umieszczony tekst przez funkcję DrawString?
>> Wartości Bounds są mi znane jednak stanowią one pole docelowe dla tekstu 
>> wyśrodkowanego a ja chcę uzyskać dokładnie pole zajmowane przez
>> automatycznie wyśrodkowany tekst funkcją DrawString. Rozmiar tekstu mogę 
>> spokojnie pobrać funkcją MeasureString(), natomiast co z jego położeniem, 
>> skoro był centrowany automatycznie? Czy jest to wykonalne?
>>
>
>   Może podejdź do sprawy odwrotnie - skoro znasz rozmiar tekstu
> i rozmiar pola, w którym ma być umieszczony, to sam go wycentruj:
> lewa krawędź tekstu = (lewa krawędź pola + szerokość tekstu)/2
> (analogicznie góra-dół). Narysujesz sam w odpowiednim miejscu.
>

Tak, zdaję sobie sprawę z takiej możliwości i oczywiście nasuwa się ona 
samoistnie, jednak do przebudowy mam cudzy kod (silnik drukujacy raporty), 
więc łatwiej byłoby mi zmienić kod w odwrotny sposób, o który pytałem a 
który wyglada jednak na niewykonalny. Tak czy owak dziękuję za odpowiedż.

Dziękuję i pozdrawiam
Marcin 


__________ Informacja programu ESET Smart Security, wersja bazy sygnatur wirusow 4667 (20091207) __________

Wiadomosc zostala sprawdzona przez program ESET Smart Security.

http://www.eset.pl lub http://www.eset.com 
Re: wyśrodkowany tekst i jego współrzędne
#21235
Author: Tomasz Muszyński
Date: Mon, 07 Dec 2009 18:21
40 lines
2818 bytes
W dniu 09-12-07 19:16, marcin pisze:
> Użytkownik "Paweł Kierski" <news@pkierski.net> napisał w wiadomości
> news:hfis3q$59m$1@news.onet.pl...
>> marcin wrote:
>>> Witam,
>>>
>>> Mam następujący problem. Rysuję tekst wyśrodkowany za pomocą funkcji
>>> DrawString():
>>>
>>> --
>>> Format.Alignment = StringAlignment.Center;
>>> Format.LineAlignment = StringAlignment.Center;
>>>
>>> g.DrawString(Text, Font, ForeBrush, Bounds, Format);
>>> --
>>>
>>> I mam teraz pytanie. Czy jest możliwe uzyskanie współrzędnych pod
>>> którymi został umieszczony tekst przez funkcję DrawString?
>>> Wartości Bounds są mi znane jednak stanowią one pole docelowe dla
>>> tekstu wyśrodkowanego a ja chcę uzyskać dokładnie pole zajmowane przez
>>> automatycznie wyśrodkowany tekst funkcją DrawString. Rozmiar tekstu
>>> mogę spokojnie pobrać funkcją MeasureString(), natomiast co z jego
>>> położeniem, skoro był centrowany automatycznie? Czy jest to wykonalne?
>>>
>>
>> Może podejdź do sprawy odwrotnie - skoro znasz rozmiar tekstu
>> i rozmiar pola, w którym ma być umieszczony, to sam go wycentruj:
>> lewa krawędź tekstu = (lewa krawędź pola + szerokość tekstu)/2
>> (analogicznie góra-dół). Narysujesz sam w odpowiednim miejscu.
>>
>
> Tak, zdaję sobie sprawę z takiej możliwości i oczywiście nasuwa się ona
> samoistnie, jednak do przebudowy mam cudzy kod (silnik drukujacy
> raporty), więc łatwiej byłoby mi zmienić kod w odwrotny sposób, o który
> pytałem a który wyglada jednak na niewykonalny. Tak czy owak dziękuję za
> odpowiedż.

No to może g.MeasureString(), a resztę policz?

tm
Re: wyśrodkowany tekst i jego współrzędne
#21236
Author: yamma
Date: Mon, 07 Dec 2009 19:33
10 lines
1391 bytes
marcin wrote:

> automatycznie wyśrodkowany tekst funkcją DrawString. Rozmiar tekstu
> mogę spokojnie pobrać funkcją MeasureString(), natomiast co z jego
> położeniem, skoro był centrowany automatycznie? Czy jest to wykonalne?

Jeśli znasz współrzędne i wymiary obszaru, na którym rysujesz, to jak 
najbardziej wykonalne. Wystarczy proste działanie arytmetyczne: (szerokość 
obszaru - szerokość tekstu) / 2.
yamma 
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads