void OnWrapOptionsAppBarButtonClick(object sender, RoutedEventArgs args) { // Create dialog WrapOptionsDialog wrapOptionsDialog = new WrapOptionsDialog { TextWrapping = txtbox.TextWrapping }; // Bind dialog to TextBox Binding binding = new Binding { Source = wrapOptionsDialog, Path = new PropertyPath("TextWrapping"), Mode = BindingMode.TwoWay }; txtbox.SetBinding(TextBox.TextWrappingProperty, binding); // Create popup Popup popup = new Popup { Child = wrapOptionsDialog, IsLightDismissEnabled = true }; // Adjust location based on content size wrapOptionsDialog.SizeChanged += (dialogSender, dialogArgs) => { popup.VerticalOffset = this.ActualHeight - wrapOptionsDialog.ActualHeight - this.BottomAppBar.ActualHeight - 48; popup.HorizontalOffset = 48; }; // Open the popup popup.IsOpen = true; }