ডাব্লুপিএফ-তে কি কোনও মেসেজবক্স সমান?


369

উইনফোর্ডসের মতো ডাব্লুপিএফ-তে কোনও স্ট্যান্ডার্ড বার্তা বাক্স আছে কি System.Windows.Forms.MessageBox.Show(), বা আমার উইনফোর্ডস বার্তা বাক্সটি ব্যবহার করা উচিত?

উত্তর:


412

ডাব্লুপিএফ সমতুল্য হবে System.Windows.MessageBox। এটিতে বেশ অনুরূপ ইন্টারফেস রয়েছে তবে প্যারামিটার এবং রিটার্ন মানের জন্য অন্যান্য গণনা ব্যবহার করে।


25
ডাব্লুপিএফ সংস্করণটিতে পুনরায় চেষ্টা, উপেক্ষা করুন এবং বাতিল বোতামের সংমিশ্রণের অভাব রয়েছে। কেবলমাত্র উপলভ্যগুলি হ'ল ওকে এবং বাতিল।
মেহরাদ

224

আপনি এটি ব্যবহার করতে পারেন:

MessageBoxResult result = MessageBox.Show("Do you want to close this window?",
                                          "Confirmation",
                                          MessageBoxButton.YesNo,
                                          MessageBoxImage.Question);
if (result == MessageBoxResult.Yes)
{
    Application.Current.Shutdown();
}

আরো তথ্যের জন্য, যান WPF মধ্যে messageBox- এর


1
... এবং অন্যান্য উত্তরের মতো এখানেও নেমস্পেসটি "সিস্টেম. উইন্ডোজ.ফর্মস" এর বিরোধিতা হিসাবে "সিস্টেম. উইন্ডোজ" হবে
ভাইকিং

1
গৃহীত উত্তরটি সঠিক, তবে এটি আমার সম্পূর্ণ। ধন্যবাদ!
সারগ্রাহী

18

ডাব্লুপিএফ নিম্নলিখিত ম্যাসেজবক্স রয়েছে:

if (MessageBox.Show("Do you want to Save?", "Confirm", 
    MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
{

}


10

বর্ধিত ডাব্লুপিএফ টুলকিটের বার্তাবক্সটি খুব সুন্দর। এটি মাইক্রোসফ্টে রয়েছে। উইন্ডোজ.কন্ট্রোলস.ম্যাসেজবক্সটি টুলকিট ডিএলএল উল্লেখ করার পরে। অবশ্যই এটি 9 ই আগস্ট 2011 প্রকাশিত হয়েছিল সুতরাং এটি আপনার পক্ষে মূলত কোনও বিকল্প ছিল না। গিথুবকে চারপাশে দেখার জন্য খুঁজে পাওয়া যাবে।


7

ডাব্লুপিএফ-তে এটি এই কোড বলে মনে হচ্ছে,

System.Windows.Forms.MessageBox.Show("Test");

এর সাথে প্রতিস্থাপন করা হয়:

System.Windows.MessageBox.Show("Test");

7

অন্যরা যেমন বলে, MessageBoxডাব্লুপিএফ নেমস্পেসে একটি আছে System.Windows

সমস্যা হল এটি দিয়ে একই বয়সী messageBox- এর হয় OK, Cancelইত্যাদি উইন্ডোজ ভিস্তা এবং উইন্ডোজ 7 এর পরিবর্তে টাস্ক ডায়ালগ ব্যবহার করার জন্য পাঠানো হয়েছে।

দুর্ভাগ্যক্রমে টাস্ক সংলাপগুলির জন্য কোনও সহজ স্ট্যান্ডার্ড ইন্টারফেস নেই। আমি কোডপ্রজেক্ট কেবি থেকে একটি বাস্তবায়ন ব্যবহার করি


3

নীচের কোডটি এখানে সহায়তা করে:

using Windows.UI.Popups;
namespace something.MyViewModels
{
    public class TestViewModel
    {
        public void aRandonMethode()
        {
            MyMessageBox("aRandomMessage");
        }

        public async void MyMessageBox(string mytext)
        {
            var dialog = new MessageDialog(mytext);
            await dialog.ShowAsync();
        }
    }
}

কোথায় আছে Windows.UI.Popups?
নিকোলাস

2
মধ্যে @Nicolas UWP না WPF
mcalex

3

আপনি যদি নিজের সুন্দর দেখতে wpf বার্তাবক্স করতে চান: নতুন ডাব্লুপিএফ উইন্ডোজ তৈরি করুন

এখানে xaml:

<Window x:Class="popup.MessageboxNew"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:popup"
        mc:Ignorable="d"
        Title="" SizeToContent="WidthAndHeight" WindowStartupLocation="CenterScreen" WindowStyle="None" ResizeMode="NoResize" AllowsTransparency="True" Background="Transparent" Opacity="1"
        >
    <Window.Resources>

    </Window.Resources>
    <Border x:Name="MainBorder" Margin="10" CornerRadius="8" BorderThickness="0" BorderBrush="Black" Padding="0" >
        <Border.Effect>
            <DropShadowEffect x:Name="DSE" Color="Black" Direction="270" BlurRadius="20" ShadowDepth="3" Opacity="0.6" />
        </Border.Effect>
        <Border.Triggers>
            <EventTrigger RoutedEvent="Window.Loaded">
                <BeginStoryboard>
                    <Storyboard>
                        <DoubleAnimation Storyboard.TargetName="DSE" Storyboard.TargetProperty="ShadowDepth" From="0" To="3" Duration="0:0:1" AutoReverse="False" />
                        <DoubleAnimation Storyboard.TargetName="DSE" Storyboard.TargetProperty="BlurRadius" From="0" To="20" Duration="0:0:1" AutoReverse="False" />
                    </Storyboard>
                </BeginStoryboard>
            </EventTrigger>
        </Border.Triggers>
        <Grid Loaded="FrameworkElement_OnLoaded">
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto"/>
            </Grid.RowDefinitions>
            <Border Name="Mask" CornerRadius="8" Background="White" />
            <Grid x:Name="Grid" Background="White">
                <Grid.OpacityMask>
                    <VisualBrush Visual="{Binding ElementName=Mask}"/>
                </Grid.OpacityMask>
                <StackPanel Name="StackPanel" >
                    <TextBox Style="{DynamicResource MaterialDesignTextBox}" Name="TitleBar" IsReadOnly="True" IsHitTestVisible="False" Padding="10" FontFamily="Segui" FontSize="14" 
                             Foreground="Black" FontWeight="Normal"
                             Background="Yellow" HorizontalAlignment="Stretch" VerticalAlignment="Center" Width="Auto" HorizontalContentAlignment="Center" BorderThickness="0"/>
                    <DockPanel Name="ContentHost" Margin="0,10,0,10" >
                        <TextBlock Margin="10" Name="Textbar"></TextBlock>
                    </DockPanel>
                    <DockPanel Name="ButtonHost" LastChildFill="False" HorizontalAlignment="Center" >
                        <Button Margin="10" Click="ButtonBase_OnClick" Width="70">Yes</Button>
                        <Button Name="noBtn" Margin="10" Click="cancel_Click" Width="70">No</Button>
                    </DockPanel>
                </StackPanel>
            </Grid>
        </Grid>
    </Border>
</Window>

এই ফাইলের সিএস জন্য:

public partial class MessageboxNew : Window
    {
        public MessageboxNew()
        {
            InitializeComponent();
            //second time show error solved
            if (Application.Current == null) new Application();
                    Application.Current.ShutdownMode = ShutdownMode.OnExplicitShutdown;
        }

        private void ButtonBase_OnClick(object sender, RoutedEventArgs e)
        {
            DialogResult = true;
        }

        private void cancel_Click(object sender, RoutedEventArgs e)
        {
            DialogResult = false;
        }

        private void FrameworkElement_OnLoaded(object sender, RoutedEventArgs e)
        {
            this.MouseDown += delegate { DragMove(); };
        }
    }

তারপরে এটি ব্যবহারের জন্য একটি শ্রেণী তৈরি করুন:

public class Mk_MessageBox
{
    public static bool? Show(string title, string text)
    {
        MessageboxNew msg = new MessageboxNew
        {
            TitleBar = {Text = title},
            Textbar = {Text = text}
        };
        msg.noBtn.Focus();
        return msg.ShowDialog();
    }
}

এখন আপনি আপনার বার্তা বাক্সটি এটি তৈরি করতে পারেন:

var result = Mk_MessageBox.Show("Remove Alert", "This is gonna remove directory from host! Are you sure?");
            if (result == true)
            {
                // whatever
            }

এটি ভিতরে App.xaml এ অনুলিপি করুন

<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <!-- MahApps.Metro resource dictionaries. Make sure that all file names are Case Sensitive! -->
            <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" />
            <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Fonts.xaml" />
            <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colors.xaml" />
            <!-- Accent and AppTheme setting -->
            <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/Blue.xaml" />
            <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseLight.xaml" />

            <!--two new guys-->
            <ResourceDictionary Source="pack://application:,,,/MaterialDesignColors;component/Themes/Recommended/Primary/MaterialDesignColor.LightBlue.xaml" />
            <ResourceDictionary Source="pack://application:,,,/MaterialDesignColors;component/Themes/Recommended/Accent/MaterialDesignColor.Green.xaml" />

            <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Light.xaml" />
            <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Defaults.xaml" />
            <ResourceDictionary Source="pack://application:,,,/MaterialDesignColors;component/Themes/Recommended/Primary/MaterialDesignColor.DeepPurple.xaml" />
            <ResourceDictionary Source="pack://application:,,,/MaterialDesignColors;component/Themes/Recommended/Accent/MaterialDesignColor.Lime.xaml" />
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>

-------------- ফলাফলের চিত্র-----------------

আমার রেফারেন্স: https://www.red-gate.com/simple-talk/dotnet/net-de વિકાસment/using-c-to-create-powershell-Cmdlet-the-basics/

যুক্তির জন্য আমি কীভাবে নিজের মেসেজবক্স তৈরি করতে পারি

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.