[Sledujte také náš twitter @Aglightcz, kde naleznete krátké zprávy nejen o novinkách na našem webu]
Třída, která zajišťuje přístup ke schránce, se nachází ve jmenném prostoru System.Windows.Clipboard. Ta zpřístupňuje 3 statické metody.
Pouze text (Unicode) můžeme získávat nebo vkládat do schránky. To je docela zásadní rozdíl oproti technologii WPF, kde bylo možné také pracovat například s obrázky.
Metody SetText a GetText můžeme vyvolat pouze v rámci uživatelovi interaktivity. Tedy v rámci události Click nebo Keydown. Každý jiný způsob přístupu ke schránce je ukončen výjimkou (SecurityException).
Běží-li aplikace v prohlížeči nebo je nainstalovaná na klientském počítači a nemá zapnutou zvýšenou důvěru (Elevated Trust), pak se uživateli objeví dialog s informací o přístupu do schránky. Uživatel má možnost přístup povolit nebo naopak zakázat. Při zákazu je vyvolána výjimka (SecurityException). Tento dialog se zobrazí pouze jednou za relaci (session).
V naší ukázce budeme mít dvě komponenty typu RichTextBox a dvě tlačítka. První RichTextBox bude sloužit jako zdroj pro kopírování a druhý bude zobrazovat obsah schránky.
XAML kód aplikace může vypadat například takto:
<Grid x:Name="LayoutRoot" Background="White"> <RichTextBox HorizontalAlignment="Left" Name="richTextBox1" VerticalAlignment="Top" Width="190" Height="213" Margin="6,0,0,0"/> <RichTextBox HorizontalAlignment="Left" Margin="203,0,0,0" Name="richTextBox2" VerticalAlignment="Top" Height="213" Width="190" IsReadOnly="True" /> <Button Content="Kopíruj" Height="23" HorizontalAlignment="Left" Margin="60,219,0,0" Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click" /> <Button Content="Vlož" Height="23" HorizontalAlignment="Left" Margin="255,219,0,0" Name="button2" VerticalAlignment="Top" Width="75" Click="button2_Click" /> </Grid>
Vytvořili jsme si dva RichTextBoxy a dvě tlačítka pomocí kterých budeme kopírovat resp. vkládat text ze schránky.
Do metody pro kopírování(button1_Click) vložíme následující kód:
if (richTextBox1.Selection.Text.Length > 0)
{
Clipboard.SetText(richTextBox1.Selection.Text);
}
Prvně otestujeme zda-li v prvním RichTextBoxu máme vybraný nějaký text. Pokud ano, tak přes statickou metodu SetText() tento text přidáme do schránky.
Do metody pro vložení textu ze schránky(button2_Click) přidáme následující kód:
if (Clipboard.ContainsText())
richTextBox2.Selection.Text = Clipboard.GetText();
V případě, že se ve schránce nachází nějaký text (Clipboard.ContainsText()), pak tento text vložíme ze schránky (Clipboard.GetText()) na označené místo v druhém RichTextBoxu.
Do levého RichTextBoxu napíšeme nějaký text. Poté text, který chceme vložit do schránky, označíme a klikneme na tlačítko Kopírovat. Pomocí tlačítka vložit, pak vložíme text ze schránky do pravého RichTextBoxu.
Působí jako Microsoft Student Partner a pracuje jako vývojář v jedné nadnárodní firmě. Zajímá se o webové technologie a počítačovou grafiku. Pozornost také věnuje hernímu průmyslu
email: davidb@devedu.cz
web: www.aglight.cz