// // $safeitemname$.xaml.cpp // Implementierung der $safeitemname$-Klasse // #include "pch.h" #include #include "$safeitemname$.xaml.h" using namespace $rootnamespace$; using namespace concurrency; using namespace Platform; using namespace Platform::Collections; using namespace Windows::ApplicationModel::Activation; using namespace Windows::Foundation; using namespace Windows::Foundation::Collections; using namespace Windows::Storage::Streams; using namespace Windows::UI::Xaml; using namespace Windows::UI::Xaml::Controls; using namespace Windows::UI::Xaml::Controls::Primitives; using namespace Windows::UI::Xaml::Data; using namespace Windows::UI::Xaml::Input; using namespace Windows::UI::Xaml::Interop; using namespace Windows::UI::Xaml::Media; using namespace Windows::UI::Xaml::Media::Imaging; using namespace Windows::UI::Xaml::Navigation; // Die Elementvorlage "Freigabezielvertrag" ist unter http://go.microsoft.com/fwlink/?LinkId=234241 dokumentiert. $wizardcomment$$wizardregistrationcomment$$safeitemname$::$safeitemname$() { InitializeComponent(); SetValue(_defaultViewModelProperty, ref new Map(std::less())); } DependencyProperty^ $safeitemname$::_defaultViewModelProperty = nullptr; void $safeitemname$::RegisterDependencyProperties() { if (_defaultViewModelProperty == nullptr) { _defaultViewModelProperty = DependencyProperty::Register("DefaultViewModel", TypeName(IObservableMap::typeid), TypeName($safeitemname$::typeid), nullptr); } } /// /// triviales Anzeigemodell verwendet werden kann. /// IObservableMap^ $safeitemname$::DefaultViewModel::get() { return safe_cast^>(GetValue(_defaultViewModelProperty)); } /// /// Wird aufgerufen, wenn eine andere Anwendung Inhalte durch diese Anwendung freigeben möchte. /// /// Aktivierungsdaten zum Koordinieren des Prozesses mit Windows. void $safeitemname$::Activate(ShareTargetActivatedEventArgs^ e) { _shareOperation = e->ShareOperation; // Metadaten über den freigegebenen Inhalt durch das Anzeigemodell kommunizieren auto shareProperties = _shareOperation->Data->Properties; auto thumbnailImage = ref new BitmapImage(); DefaultViewModel->Insert("Title", shareProperties->Title); DefaultViewModel->Insert("Description", shareProperties->Description); DefaultViewModel->Insert("Image", thumbnailImage); DefaultViewModel->Insert("Sharing", false); DefaultViewModel->Insert("ShowImage", false); DefaultViewModel->Insert("Comment", ""); DefaultViewModel->Insert("Placeholder", "Add a comment"); DefaultViewModel->Insert("SupportsComment", true); Window::Current->Content = this; Window::Current->Activate(); // Das Miniaturbild des freigegebenen Inhalts im Hintergrund aktualisieren if (shareProperties->Thumbnail != nullptr) { // PPL-Aufgabe erstellen, um asynchronen Lesevorgang zu bearbeiten concurrency::task readStreamTask(shareProperties->Thumbnail->OpenReadAsync()); readStreamTask.then([this, thumbnailImage](IRandomAccessStreamWithContentType^ stream) { // Bild nach dem Lesen anzeigen thumbnailImage->SetSource(stream); DefaultViewModel->Insert("ShowImage", true); }, task_continuation_context::use_current()); } } /// /// Wird aufgerufen, wenn der Benutzer auf die Schaltfläche "Gemeinsam verwenden" klickt. /// /// Instanz der Schaltfläche, die zum Initiieren der Freigabe verwendet wird. /// Ereignisdaten, die beschreiben, wie auf die Schaltfläche geklickt wurde. void $safeitemname$::ShareButton_Click(Object^ sender, RoutedEventArgs^ e) { (void) sender; // Nicht verwendeter Parameter (void) e; // Nicht verwendeter Parameter DefaultViewModel->Insert("Sharing", true); _shareOperation->ReportStarted(); // TODO: Aufgaben durchführen, die für Ihr Freigabeszenario geeignet sind, hierbei _shareOperation->Data verwenden // normalerweise mit zusätzlichen Informationen, die über eine benutzerdefinierte Benutzeroberfläche erfasst werden // Elemente, die dieser Seite hinzugefügt werden, z. B. DefaultViewModel->Lookup("Comment") _shareOperation->ReportCompleted(); }