{"id":55000239,"date":"2020-12-01T00:00:00","date_gmt":"2020-12-23T15:50:45","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=239"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Das_Kalendersteuerelement","status":"publish","type":"post","link":"https:\/\/vbentwickler.de\/Das_Kalendersteuerelement\/","title":{"rendered":"Das Kalendersteuerelement"},"content":{"rendered":"<p><b>.NET bietet schon in der Grundausstattung sehr viele Steuerelemente f&uuml;r WPF-Anwendungen &#8211; hinzu kommen noch solche von Drittanbietern. Wir wollen nach und nach die WPF-Steuerelemente von .NET vorstellen, die wir noch nicht in den vorherigen Ausgaben beleuchtet haben. Und dort haben wir uns bisher ja nur um Standard-Steuerelemente wie TextBox, Button, ComboBox oder die diversen Steuerelemente zum Strukturieren anderer Steuerelemente gek&uuml;mmert. Im vorliegenden Artikel schauen wir uns die Grundlagen zum Kalendersteuerelement an<\/b><\/p>\n<p>Wenn Sie die Entwurfsansicht einer XAML-Datei anzeigen und die Toolbox aktivieren, sehen Sie im oberen Bereich namens <b>H&auml;ufig verwendete WPF-Steuerelemente <\/b>die oft verwendeten Steuerelemente wie <b>Button<\/b>, <b>CheckBox<\/b>, <b>ComboBox <\/b>oder <b>TextBox<\/b>. Der Bereich <b>Alle WPF-Steuerelemente <\/b>ist oft ausgeblendet, liefert aber noch viele weitere Steuerelemente, die Sie ohne weitere Handgriffe in Ihre Anwendungen integrieren k&ouml;nnen. Diesen Bereich sehen Sie in Bild 1.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2020_06\/pic_239_001.png\" alt=\".WPF-Steuerelemente\" width=\"274,8134\" height=\"890,3955\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 1: .WPF-Steuerelemente<\/span><\/b><\/p>\n<p>Im vorliegenden Artikel wollen wir mit dem <b>Calendar<\/b>-Steuerelement beginnen. Dieses ziehen Sie im einfachsten Fall per Drag and Drop aus der Toolbox auf den aktuell ge&ouml;ffneten XAML-Entwurf (siehe Bild 2).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2020_06\/pic_239_002.png\" alt=\"Das Calendar-Steuerelement\" width=\"349,7625\" height=\"247,2005\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 2: Das Calendar-Steuerelement<\/span><\/b><\/p>\n<p>Im WPF-Code erscheint dann folgende Zeile:<\/p>\n<pre>&lt;Calendar HorizontalAlignment=\"Left\" Margin=\"33,27,0,0\" VerticalAlignment=\"Top\"\/&gt;<\/pre>\n<p>In der laufenden Anwendung zeigt das <b>Calendar<\/b>-Steuerelement standardm&auml;&szlig;ig das aktuelle Datum an. Sie k&ouml;nnen andere Tage markieren, das aktuelle Datum bleibt jedoch farbig hinterlegt. Das <b>Calendar<\/b>-Steuerelement zeigt immer sechs Zeilen mit den Tagen jeweils einer Woche an. Da kein Monat 42 Tage enth&auml;lt, werden die Tage des vorherigen und des folgenden Monats eingeblendet. Klicken Sie einen Tag an, der nicht zum aktuellen Monat geh&ouml;rt, wechselt die Ansicht zum Monat dieses Tages und markiert diesen Tag. Eine andere Art, zum vorherigen oder zum nachfolgenden Monat zu wechseln, ist ein Mausklick auf einen der Pfeile links und rechts vom Monatsnamen.<\/p>\n<p><b>Gr&ouml;&szlig;e anpassen<\/b><\/p>\n<p>Im Gegensatz zu vielen anderen Steuerelementen passt sich die Gr&ouml;&szlig;e des <b>Calendar<\/b>-Steuerelements nicht automatisch an das umliegende Element an. Wenn Sie beispielsweise einem Grid ein <b>Button<\/b>-Element hinzuf&uuml;gen, nimmt dieses direkt den vollst&auml;ndigen Platz im Grid ein, solange Sie dies nicht mit entsprechenden Eigenschaften einschr&auml;nken. Das Calendar-Steuerelement wird schlicht an der Stelle, an der es eingef&uuml;gt wird, in der Standardgr&ouml;&szlig;e angezeigt.<\/p>\n<p><b>Startdatum einstellen<\/b><\/p>\n<p>Wenn Sie wollen, dass das <b>Calendar<\/b>-Steuerelement ein anderes Datum als das des heutigen Tages anzeigt, k&ouml;nnen Sie dies mit der Eigenschaft <b>DisplayDate <\/b>erreichen. Diese stellen Sie beispielsweise auf ein fixes Datum ein:<\/p>\n<pre>&lt;Calendar DisplayDate=\"1.1.2021\"&gt;&lt;\/Calendar&gt;<\/pre>\n<p>Bereits in der Entwurfsansicht zeigt das <b>Calendar<\/b>-Steuerelement dann den Monat <b>Januar 2021 <\/b>an. Starten wir die Anwendung dann, bleibt es auch dabei &#8211; das <b>Calendar<\/b>-Steuerelement zeigt den <b>Januar 2021 <\/b>an, aber markiert nicht den <b>1.1.2021<\/b>. Liest man in der Dokumentation nach, erf&auml;hrt man schnell, dass mit <b>DisplayDate <\/b>tats&auml;chlich nur der Monat des mit <b>DisplayDate <\/b>angegebenen Datums eingestellt werden kann.<\/p>\n<p>Wie aber k&ouml;nnen wir tats&auml;chlich das Datum festlegen, das beim &Ouml;ffnen markiert werden soll Das erledigen Sie mit der Eigenschaft <b>SelectedDate<\/b>:<\/p>\n<pre>&lt;Calendar SelectedDate=\"1.1.2021\"&gt;&lt;\/Calendar&gt;<\/pre>\n<p>Damit wird das aktuelle Datum aber nach wie vor grau hinterlegt, w&auml;hrend das mit <b>SelectedDate <\/b>angegebene Datum einen hellblauen Hintergrund erh&auml;lt (siehe Bild 3).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2020_06\/pic_239_004.png\" alt=\"Datum einstellen mit SelectedDate\" width=\"199,8643\" height=\"215,4671\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 3: Datum einstellen mit SelectedDate<\/span><\/b><\/p>\n<p><b>Aktuelles Datum nicht markieren<\/b><\/p>\n<p>Wenn Sie nicht m&ouml;chten, dass das aktuelle Datum durch einen farbigen Hintergrund markiert wird, stellen Sie die Eigenschaft <b>IsTodayHighlighted <\/b>auf <b>False <\/b>ein:<\/p>\n<pre>&lt;Calendar IsTodayHighlighted=\"False\"&gt;&lt;\/Calendar&gt;<\/pre>\n<p><b>Anderen Wochentag als ersten Tag anzeigen<\/b><\/p>\n<p>Normalerweise zeigt das <b>Calendar<\/b>-Steuerelement den Montag in der ersten Spalte an. Wenn Sie einen anderen Tag anzeigen wollen, beispielsweise den Samstag, legen Sie dies mit dem Attribut <b>FirstDayOfWeek <\/b>fest, das die englische Wochentagsbezeichnung erwartet &#8211; hier beispielsweise <b>Saturday<\/b>:<\/p>\n<pre>&lt;Calendar FirstDayOfWeek=\"Saturday\"&gt;&lt;\/Calendar&gt;<\/pre>\n<p><b>Einzelnes Datum ausw&auml;hlen<\/b><\/p>\n<p>Das Attribut <b>SelectionMode <\/b>legt fest, ob einzelne Datums-angaben oder Datumsbereiche ausgew&auml;hlt werden k&ouml;nnen. Dazu stellt diese Eigenschaft die folgenden Werte zur Verf&uuml;gung:<\/p>\n<ul>\n<li><b>None<\/b>: Es kann gar kein Datum ausgew&auml;hlt werden.<\/li>\n<li><b>SingleDate<\/b>: Es kann ein einzelnes Datum ausgew&auml;hlt werden, und zwar per Mausklick auf das gew&uuml;nschte Datum.<\/li>\n<li><b>SingleRange<\/b>: Es kann ein einfacher Datumsbereich ausgew&auml;hlt werden.<\/li>\n<li><b>MultipleRange<\/b>: Es k&ouml;nnen mehrere Datumsbereiche ausgew&auml;hlt werden.<\/li>\n<\/ul>\n<p>Die M&ouml;glichkeiten dieser vier Einstellungen sehen Sie in Bild 4.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2020_06\/pic_239_003.png\" alt=\"Verschiedene Auswahlmodi des Calendar-Steuerelements\" width=\"649,559\" height=\"172,8593\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 4: Verschiedene Auswahlmodi des Calendar-Steuerelements<\/span><\/b><\/p>\n<p><b>Einzelnen Datumsbereich ausw&auml;hlen<\/b><\/p>\n<p>Wenn Sie die Einstellung <b>SingleRange <\/b>f&uuml;r die Eigenschaft <b>SelectionMode <\/b>angeben, k&ouml;nnen Sie einen oder mehrere zusammenh&auml;ngende Tage ausw&auml;hlen. Das gelingt auf verschiedene Arten:<\/p>\n<ul>\n<li>Durch Anklicken des ersten Tages und Anklicken des letzten Tages bei gedr&uuml;ckter Umschalttaste.<\/li>\n<li>Durch Mausklick auf den ersten Tag und Ziehen der Markierung bei gedr&uuml;ckter Maustaste bis zum letzten Tag.<\/li>\n<\/ul>\n<p>Wenn Sie einen Zeitraum w&auml;hlen wollen, der sich &uuml;ber den aktuell angezeigten Monat hinaus erstreckt, k&ouml;nnen Sie den ersten Tag markieren, dann mit den <b>Nach links<\/b>&#8211; oder <b>Nach rechts<\/b>-Schaltfl&auml;chen zum gew&uuml;nschten Monat wechseln und dann bei gedr&uuml;ckter Umschalttaste den letzten Tag des Datumsbereichs markieren.<\/p>\n<p>Oder Sie markieren den ersten Tag und klicken dann bei gedr&uuml;ckter Umschalttaste jeweils auf einen der Tage, die zwar im Kalender angezeigt werden, aber nicht zum aktuellen Monat geh&ouml;ren und wechseln so zum vorherigen oder folgenden Monat. Haben Sie den Zielmonat erreicht, klicken Sie &#8211; immer noch bei gedr&uuml;ckter Umschalttaste &#8211; auf den gew&uuml;nschten Tag.<\/p>\n<p><b>Mehrere Datumsbereiche ausw&auml;hlen<\/b><\/p>\n<div class=\"rcp_restricted\"><p><span style=\"color: #ff0000;\">M&ouml;chten Sie weiterlesen? Dann l&ouml;sen Sie Ihr Ticket!<\/span><br \/>\n<span style=\"color: #ff0000;\">Hier geht es zur Bestellung des Jahresabonnements des Magazins <strong>Visual Basic Entwickler<\/strong>:<\/span><br \/>\n<span style=\"color: #ff0000;\"><a style=\"color: #ff0000;\" href=\"https:\/\/shop.minhorst.com\/magazine\/363\/visual-basic-entwickler-jahresabonnement?c=77\">Zur Bestellung ...<\/a><\/span><br \/>\n<span style=\"color: #ff0000;\">Danach greifen Sie sofort auf <strong>alle rund 200 Artikel<\/strong> unseres Angebots zu - auch auf diesen hier!<\/span><br \/>\n<span style=\"color: #000000;\">Oder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:<\/span><\/p>\n<\/div>\n\n\t\n\t<form id=\"rcp_login_form\"  class=\"rcp_form\" method=\"POST\" action=\"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000239\/\">\n\n\t\t\n\t\t<fieldset class=\"rcp_login_data\">\n\t\t\t<p>\n\t\t\t\t<label for=\"rcp_user_login\">Username or Email<\/label>\n\t\t\t\t<input name=\"rcp_user_login\" id=\"rcp_user_login\" class=\"required\" type=\"text\"\/>\n\t\t\t<\/p>\n\t\t\t<p>\n\t\t\t\t<label for=\"rcp_user_pass\">Password<\/label>\n\t\t\t\t<input name=\"rcp_user_pass\" id=\"rcp_user_pass\" class=\"required\" type=\"password\"\/>\n\t\t\t<\/p>\n\t\t\t\t\t\t<p>\n\t\t\t\t<input type=\"checkbox\" name=\"rcp_user_remember\" id=\"rcp_user_remember\" value=\"1\"\/>\n\t\t\t\t<label for=\"rcp_user_remember\">Remember me<\/label>\n\t\t\t<\/p>\n\t\t\t<p class=\"rcp_lost_password\"><a href=\"\/data\/wp\/v2\/posts\/55000239?rcp_action=lostpassword\"><\/a><\/p>\n\t\t\t<p>\n\t\t\t\t<input type=\"hidden\" name=\"rcp_action\" value=\"login\"\/>\n\t\t\t\t<input type=\"hidden\" name=\"rcp_redirect\" value=\"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000239\/\"\/>\n\t\t\t\t<input type=\"hidden\" name=\"rcp_login_nonce\" value=\"38e0d7a80c\"\/>\n\t\t\t\t<input id=\"rcp_login_submit\" class=\"rcp-button\" type=\"submit\" value=\"Login\"\/>\n\t\t\t<\/p>\n\t\t\t\t\t<\/fieldset>\n\n\t\t\n\t<\/form>\n<\/p>\n","protected":false},"excerpt":{"rendered":"<p>.NET bietet schon in der Grundausstattung sehr viele Steuerelemente f&uuml;r WPF-Anwendungen &#8211; hinzu kommen noch solche von Drittanbietern. Wir wollen nach und nach die WPF-Steuerelemente von .NET vorstellen, die wir noch nicht in den vorherigen Ausgaben beleuchtet haben. Und dort haben wir uns bisher ja nur um Standard-Steuerelemente wie TextBox, Button, ComboBox oder die diversen Steuerelemente zum Strukturieren anderer Steuerelemente gek&uuml;mmert. Im vorliegenden Artikel schauen wir uns die Grundlagen zum Kalendersteuerelement an<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[662020,66062020,44000027,44000026,44000030,44000015],"tags":[],"yst_prominent_words":[],"class_list":["post-55000239","post","type-post","status-publish","format-standard","hentry","category-662020","category-66062020","category-Excel_programmieren","category-Outlook_programmieren","category-PowerPoint_programmieren","category-WPFSteuerelemente"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000239","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/comments?post=55000239"}],"version-history":[{"count":0,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000239\/revisions"}],"wp:attachment":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/media?parent=55000239"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/categories?post=55000239"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/tags?post=55000239"},{"taxonomy":"yst_prominent_words","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/yst_prominent_words?post=55000239"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}