středa 13. října 2010

Pohled do minulosti, aneb průhledné png v IE6

IE-6-small Pokud dnes chceme na webu požít obrázek png s průhledností, nezbývá než nějakým způsobem ošetřit zobrazení průhlednosti v prohlížeči Internet Explorer 6. Bohužel se ještě nedá mávnout rukou nad tímto prohlížečem, a je řekněme profesionální zajistit správné zobrazení takového obrázku v IE6. Jak to udělat? Já vím o dvou způsobech, přičemž ten druhý se mi zdá výhodnější a to z toho důvodu, že je bezobslužný a problém řeší sám. Ale pojďme popořádku.

Řešení pomocí CSS

Toto má dva kroky vytvoření css pravidel pro použití filtru při zobrazení obrázku a aplikace tohoto pouze pro IE6.

Vlastní pravidlo může vypadat například takto:

Pro běžné prohlížeče umístěno v souboru style.css:

.obrazek
{
background-image:url(/images/obrazek.png);
}

Pro IE6 umístěno v souboru style-IE6.css:

.obrazek
{
background: transparent;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, src='/images/obrazek.png', sizingMethod='scale');
}

Pokud tedy máme dva soubory se styly, můžeme je nalinkovat do stránky tak, aby soubor style-IE6.css byl načítán pouze v IE6:

<link href="/css/style.css" rel="stylesheet" type="text/css" />
<!--[if lte IE 6]>
<link href="/css/style-IE6.css" rel="stylesheet" type="text/css" />
<![endif]—>

A to je vše. Obrázek zobrazený css pravidlem bude správě zobrazen i v IE6. V tomto řešení spatřuji problém v tom, že každý obrázek na webu je nutné takto ošetřit a to se nemusí vždy podařit.

Řešení pomocí Javascriptu založeném na JQuery knihovně

O proti předchozímu řešení je zde přilinkována Javascriptová knihovna založená na JQuery a jednoduché zavolání funkce z této knihovny, které ošetří všechny png obrázky. Samozřejmě je nutné mít přilinkovanou i samotnou JQuery knihovnu.

Příklad použití:

Přilinkování knihoven:

<script src="/js/jquery-1.4.1.min.js" type="text/javascript"></script>    <script src="/js/jquery.pngFix.pack.js" type="text/javascript"></script>

Vlastní volání umístěné například mezi tagy head:

<head>
...
<script type="text/javascript">
$(document).ready(function(){
$(document).pngFix(); });
</script>
...
</head>

Více se tomuto tématu věnuje tento web, kde je možné si stáhnout i danou knihovnu a podrobný příklad použití. Pro úplnost ještě link na knihovnu pngFix.zip.

pondělí 11. října 2010

Bing Mapy API a SDK

bing Dnes velmi krátce, ale zato doufám, že užitečně. Při vkládání map společnosti Microsoft "Bing" do webu se může hodit Maps Interactive SDK, které je na adrese http://www.microsoft.com/maps/isdk/ajax/.

Je to jednoduché rozhraní poskytující kompletní informace o tom, jak vložit Bing mapu s různými způsoby. bing-sdk Pro úplnost ještě přikládám odkaz na MSDN Library pro Bing Mapy.

středa 6. října 2010

Ladění aplikací I.

peroV této sérii několika článků bych se chtěl podívat na některé možnosti jak si pomoci při ladění aplikací. Jmenovitě dnes se podíváme na velmi jednoduchý, ale za to šikovný způsob, jak zapisovat do Output okna Visual studia.

Způsobů jak zapisovat do Output okna je několik a nyní se podíváme na ten úplně nejednoduší, a to využití metod třídy Trace pro zápis do Output okna Visual studia.

Pro to, abychom mohli používat třídu Trace je nutné zaregistrovat namespace System.Diagnostics a pak už můžeme začít se třídou pracovat. Následující příklad ukazuje způsob jednoduchého zápisu:

class Program
{
static void Main(string[] args)
{
Trace.WriteLine("Zápis do output okna");
}
}

Výsledek je vidět na obrázku:
output1

Třída Trace nám nabízí dvě základní metody a dvě podmíněné metody pro zápis do output okna.


Write - provede zápis do output okna.

WriteLine - provede zápis do output okna a odřádkuje.

WriteIf - provede podmíněný zápis do output okna, pokud je parametr logické ANO. Viz. příklad.

WriteLineIf - provede podmíněný zápis do output okna a odřádkuje, pokud je parametr logické ANO. Viz. příklad.

Takže zde je slíbený jednoduchý příklad na podmíněný zápis:


class Program
{
static void Main(string[] args)
{
bool bWrite = true;
Trace.WriteLineIf(bWrite, "Zápis do output okna");
}
}

Výsledek je stejný jako v předchozím příkladu, pokud je bWrite rovno true:
output2
A to je pro dnešek vše.V druhém díle se podíváme na jiný způsob výpisu do output okna a vytvoření vlastního ladícího okna.