国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

[WPF]動(dòng)手寫一個(gè)簡(jiǎn)單的消息對(duì)話框

這篇具有很好參考價(jià)值的文章主要介紹了[WPF]動(dòng)手寫一個(gè)簡(jiǎn)單的消息對(duì)話框。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

消息對(duì)話框是UI界面中不可或缺的組成部分,用于給用戶一些提示,警告或者詢問的窗口。在WPF中,消息對(duì)話框是系統(tǒng)原生(user32.dll)的MessageBox,無法通過Style或者Template來修改消息對(duì)話框的外觀。因此,當(dāng)需要一個(gè)與應(yīng)用程序主題風(fēng)格一致的消息對(duì)話框時(shí),只能自己動(dòng)手造輪子了。

確定“輪子”的功能

消息對(duì)話框的核心功能是向用戶顯示信息,并在用戶對(duì)消息進(jìn)行處理前中斷用戶的操作。根據(jù)常見的應(yīng)用場(chǎng)景,可以梳理出以下幾點(diǎn)功能:

  • 支持的消息類型:提示信息、警告信息、錯(cuò)誤信息、詢問信息
  • 支持的對(duì)話框類型:迷你模式(顯示簡(jiǎn)要信息并自動(dòng)關(guān)閉)、普通模式、完整模式(適用于消息內(nèi)容分層級(jí)顯示)
  • 設(shè)置消息對(duì)話框是否將觸發(fā)源作為父窗體并顯示遮罩層
    主要功能如下圖所示:
    [WPF]動(dòng)手寫一個(gè)簡(jiǎn)單的消息對(duì)話框

開始造“輪子”

消息對(duì)話框本質(zhì)也是一個(gè)窗體,因此首先要做的是自定義一個(gè)彈窗的樣式,然后根據(jù)消息類型以及對(duì)話框類型定義相應(yīng)的模板。

自定義窗口外觀

標(biāo)準(zhǔn)的窗口由兩個(gè)重疊的矩形組成。外部矩形是非工作區(qū),其中包括標(biāo)題欄按鈕(最小化、最大化和關(guān)閉) 、窗口邊框、調(diào)整大小和移動(dòng)行為、應(yīng)用程序圖標(biāo)和標(biāo)題以及系統(tǒng)菜單。它由操作系統(tǒng)的窗口管理器繪制和管理。其尺寸由標(biāo)準(zhǔn)操作系統(tǒng)設(shè)置決定。內(nèi)部矩形是工作區(qū),也就是應(yīng)用程序的內(nèi)容。
自定義窗口外觀主要是針對(duì)非工作區(qū),可以通過設(shè)置屬性WindowStyleNone,或者使用 WindowChrome類來自定義。這里我們使用前一種方法。

<!-- 彈出提示窗體模板 -->
<ControlTemplate x:Key="AlertDialogBaseTemplate" TargetType="{x:Type Window}">
    <Border x:Name="border" Margin="0"
            Background="White" CornerRadius="3"
            RenderTransformOrigin="0.5,0.5">
        <i:Interaction.Triggers>
            <i:EventTrigger EventName="Loaded">
                <helper:EventToCommand Command="{Binding LoadedCommand}" CommandParameter="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Window}}}" />
            </i:EventTrigger>
        </i:Interaction.Triggers>
        <Border.RenderTransform>
            <TransformGroup>
                <ScaleTransform />
            </TransformGroup>
        </Border.RenderTransform>
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto" />
                <RowDefinition Height="*" />
            </Grid.RowDefinitions>
            <toolkit:ImageButton Grid.Row="0" Width="16" Height="16"
                                 Margin="0,16,16,0"
                                 HorizontalAlignment="Right"
                                 VerticalAlignment="Bottom"
                                 Command="{Binding CloseWinCommand}"
                                 CommandParameter="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Window}}}"
                                 DownImage="Images/AlterDialog/btnclose_hover.png"
                                 HoverImage="Images/AlterDialog/btnclose_hover.png"
                                 NormalImage="Images/AlterDialog/btnclose.png"
                                 ToolTip="關(guān)閉"
                                 Visibility="{Binding DialogMode, Converter={helper:EnumExcludeConverter}, ConverterParameter='Mini'}" />
            <ContentPresenter Grid.Row="1" />
        </Grid>
    </Border>
</ControlTemplate>

<!-- 彈出提示窗體樣式 -->
<Style x:Key="AlterDailogBaseStyle" TargetType="{x:Type view:AlterDialogWindow}" BasedOn="{StaticResource BaseWindowStyle}">
    <Setter Property="AllowsTransparency" Value="True" />
    <Setter Property="Height" Value="180" />
    <Setter Property="MaxHeight" Value="240" />
    <Setter Property="MaxWidth" Value="400" />
    <Setter Property="OverridesDefaultStyle" Value="True" />
    <Setter Property="Template" Value="{StaticResource AlertDialogBaseTemplate}" />
    <Setter Property="Topmost" Value="False" />
    <Setter Property="Width" Value="400" />
    <Setter Property="WindowState" Value="Normal" />
    <Setter Property="WindowStyle" Value="None" />
</Style>

<Style TargetType="{x:Type view:AlterDialogWindow}" BasedOn="{StaticResource AlterDailogBaseStyle}" />

上述代碼中,通過把WindowStyle屬性設(shè)置為None來隱藏默認(rèn)的非工作區(qū)(控制區(qū)),然后再窗口的Template中定義一個(gè)兩行的Grid,第一行模擬窗口非工作區(qū)的標(biāo)題欄,本例中僅放一個(gè)關(guān)閉按鈕。第二行則是工作區(qū)。

分享一個(gè)小小的經(jīng)驗(yàn):在定義AlterDialogWindow樣式的時(shí)候,最后一行代碼僅僅是定義了一個(gè)TargetTypeview:AlterDialogWindow的樣式,并且通過BasedOn繼承自 x:Key="AlterDailogBaseStyle"的樣式。這樣做并非多此一舉,而是為了方便局部需要個(gè)性化樣式時(shí)最大限度地復(fù)用默認(rèn)的全局樣式。

自定義消息對(duì)話框模板

消息對(duì)話框整體可以劃分為信息區(qū)域和交互區(qū)域兩部分。信息區(qū)域呈現(xiàn)消息類型和消息內(nèi)容,交互區(qū)域用于呈現(xiàn)確定和取消按鈕。信息區(qū)域的布局及大小與對(duì)話框類型相關(guān)。交互區(qū)域則與消息類型以及對(duì)話框類型都有關(guān)。提示、警告、錯(cuò)誤這三類消息是通知警示的作用,不需要用戶做出YES or NO的處理,僅需要顯示確定按鈕即可,詢問類信息則需要顯示確定和取消兩個(gè)按鈕。迷你模式的對(duì)話框則不需顯示確定和取消按鈕,因此整個(gè)交互區(qū)都不顯示。
根據(jù)三種類型的對(duì)話框定義三個(gè)信息區(qū)域的模板:

<DataTemplate x:Key="TemplateMini">
    <StackPanel Margin="40,15,40,15" HorizontalAlignment="Center" Orientation="Horizontal">
        <StackPanel.Resources>
            <Style TargetType="{x:Type TextBlock}">
                <Setter Property="FontSize" Value="18" />
                <Setter Property="VerticalAlignment" Value="Center" />
            </Style>
            <Style TargetType="{x:Type toolkit:SelectableTextBlock}">
                <Setter Property="FontSize" Value="18" />
                <Setter Property="VerticalAlignment" Value="Center" />
            </Style>
        </StackPanel.Resources>
        <Image Width="32" Height="34"
               HorizontalAlignment="Right"
               RenderOptions.BitmapScalingMode="LowQuality"
               RenderOptions.CachingHint="Cache"
               SnapsToDevicePixels="False"
               Source="{Binding DialogType, Converter={StaticResource AlterDialogWindow_IconConverter}}"
               Stretch="UniformToFill" />
        <ScrollViewer MaxWidth="300" HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto">
            <toolkit:SelectableTextBlock Margin="0,0,0,0"
                                         HorizontalAlignment="Left" FontSize="18"
                                         Foreground="#333333"
                                         Text="{Binding Content}"
                                         TextWrapping="Wrap" />
        </ScrollViewer>
    </StackPanel>
</DataTemplate>

<DataTemplate x:Key="TemplateNormal">
    <StackPanel Margin="40,18,40,0" HorizontalAlignment="Center" VerticalAlignment="Top" Orientation="Horizontal">
        <StackPanel.Resources>
            <Style TargetType="{x:Type TextBlock}">
                <Setter Property="FontSize" Value="18" />
                <Setter Property="VerticalAlignment" Value="Center" />
            </Style>
            <Style TargetType="{x:Type toolkit:SelectableTextBlock}">
                <Setter Property="FontSize" Value="18" />
                <Setter Property="VerticalAlignment" Value="Center" />
            </Style>
        </StackPanel.Resources>
        <Image Width="40" Height="42"
               HorizontalAlignment="Right"
               RenderOptions.BitmapScalingMode="LowQuality"
               RenderOptions.CachingHint="Cache"
               SnapsToDevicePixels="False"
               Source="{Binding DialogType, Converter={StaticResource AlterDialogWindow_IconConverter}}"
               Stretch="UniformToFill" />
        <ScrollViewer MaxWidth="280" HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto">
            <toolkit:SelectableTextBlock Margin="0,0,0,0"
                                         HorizontalAlignment="Left" FontSize="18"
                                         Foreground="#333333"
                                         Text="{Binding Content}"
                                         TextWrapping="Wrap" />
        </ScrollViewer>
    </StackPanel>
</DataTemplate>

<DataTemplate x:Key="TemplateFull">
    <Grid Margin="40,10,40,0" HorizontalAlignment="Center" VerticalAlignment="Top">
        <Grid.RowDefinitions>
            <RowDefinition />
            <RowDefinition />
        </Grid.RowDefinitions>
        <Image Width="54" Height="56"
               HorizontalAlignment="Center"
               RenderOptions.BitmapScalingMode="LowQuality"
               RenderOptions.CachingHint="Cache"
               SnapsToDevicePixels="False"
               Source="{Binding DialogType, Converter={StaticResource AlterDialogWindow_IconConverter}}"
               Stretch="UniformToFill" />
        <ScrollViewer Grid.Row="1" MaxWidth="300"
                      Margin="0,12,0,0"
                      HorizontalScrollBarVisibility="Disabled"
                      VerticalScrollBarVisibility="Auto">
            <StackPanel>
                <toolkit:SelectableTextBlock Margin="0,0,0,0"
                                             HorizontalAlignment="Center"
                                             FontSize="18" Foreground="#333333"
                                             Text="{Binding Content}"
                                             TextWrapping="Wrap" />
                <toolkit:SelectableTextBlock HorizontalAlignment="Center" FontSize="14" Foreground="#999999" Text="{Binding SubContent}" />
            </StackPanel>
        </ScrollViewer>
    </Grid>
</DataTemplate>

交互區(qū)域可定義兩個(gè)模板:僅顯示確定按鈕,顯示確定和取消按鈕。

<DataTemplate x:Key="Template0">
    <StackPanel Orientation="Horizontal">
        <toolkit:ImageButton Width="108" Height="56"
                             Command="{Binding YesCommand}"
                             DownImage="{Binding DialogType, Converter={StaticResource AlterDialogWindow_ButtonConverter}, ConverterParameter='0|2'}"
                             Foreground="{Binding DialogType, Converter={StaticResource AlterDialogWindow_ButtonConverter}, ConverterParameter='0|3'}"
                             HoverImage="{Binding DialogType, Converter={StaticResource AlterDialogWindow_ButtonConverter}, ConverterParameter='0|1'}"
                             NormalImage="{Binding DialogType, Converter={StaticResource AlterDialogWindow_ButtonConverter}, ConverterParameter='0|0'}">
            <Grid>
                <TextBlock FontSize="16" Foreground="White" Text="{Binding YesButtonText}" Visibility="{Binding IsCountdown, Converter={StaticResource VisibilityConverter}, ConverterParameter='!'}" />
                <StackPanel Orientation="Horizontal" TextBlock.Foreground="White" Visibility="{Binding IsCountdown, Converter={StaticResource VisibilityConverter}}">
                    <TextBlock FontSize="16" Text="{Binding YesButtonText}" />
                    <TextBlock FontSize="14" Text="{Binding Countdown, StringFormat={}({0}s)}" />
                </StackPanel>
            </Grid>
        </toolkit:ImageButton>
        <toolkit:ImageButton Width="108" Height="32"
                             Margin="29,0,0,0"
                             Command="{Binding NoCommand}"
                             DownImage="{Binding DialogType, Converter={StaticResource AlterDialogWindow_ButtonConverter}, ConverterParameter='1|2'}"
                             Foreground="#366d85"
                             HoverImage="{Binding DialogType, Converter={StaticResource AlterDialogWindow_ButtonConverter}, ConverterParameter='1|1'}"
                             IsDefault="True"
                             NormalImage="{Binding DialogType, Converter={StaticResource AlterDialogWindow_ButtonConverter}, ConverterParameter='1|0'}">
            <TextBlock FontSize="16" Foreground="#0099ff" Text="{Binding NoButtonText}" />
        </toolkit:ImageButton>

    </StackPanel>
</DataTemplate>

<DataTemplate x:Key="Template1">
    <StackPanel Orientation="Horizontal">
        <toolkit:ImageButton Width="108" Height="56"
                             Command="{Binding YesCommand}"
                             DownImage="{Binding DialogType, Converter={StaticResource AlterDialogWindow_ButtonConverter}, ConverterParameter='0|2'}"
                             FontSize="18"
                             Foreground="{Binding DialogType, Converter={StaticResource AlterDialogWindow_ButtonConverter}, ConverterParameter='0|3'}"
                             HoverImage="{Binding DialogType, Converter={StaticResource AlterDialogWindow_ButtonConverter}, ConverterParameter='0|1'}"
                             IsDefault="True"
                             NormalImage="{Binding DialogType, Converter={StaticResource AlterDialogWindow_ButtonConverter}, ConverterParameter='0|0'}">
            <Grid>
                <TextBlock FontSize="16" Foreground="White" Text="{Binding YesButtonText}" Visibility="{Binding IsCountdown, Converter={StaticResource VisibilityConverter}, ConverterParameter='!'}" />
                <StackPanel Orientation="Horizontal" TextBlock.Foreground="White" Visibility="{Binding IsCountdown, Converter={StaticResource VisibilityConverter}}">
                    <TextBlock FontSize="16" Text="{Binding YesButtonText}" />
                    <TextBlock FontSize="14" Text="{Binding Countdown, StringFormat={}({0}s)}" />
                </StackPanel>
            </Grid>
        </toolkit:ImageButton>
    </StackPanel>
</DataTemplate>

定義好了信息區(qū)域和交互區(qū)域的幾種模板后,AlterDialogWindow聲明兩個(gè)ContentPresenter表示信息區(qū)域和交互區(qū)域,通過模板選擇器選擇相應(yīng)模板。其中交互區(qū)域通過綁定對(duì)話框類型來判斷是否顯示該區(qū)域。

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="*" />
        <RowDefinition Height="auto" />
    </Grid.RowDefinitions>
    <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Top" Content="{Binding}">
        <ContentPresenter.ContentTemplateSelector>
            <local:AlterDialogWindowContentTemplateSelector Template0="{StaticResource TemplateMini}" Template1="{StaticResource TemplateNormal}" Template2="{StaticResource TemplateFull}" />
        </ContentPresenter.ContentTemplateSelector>
    </ContentPresenter>
    <ContentPresenter Grid.Row="1" Margin="0,0,0,16"
                      HorizontalAlignment="center"
                      VerticalAlignment="Top"
                      Content="{Binding}"
                      Visibility="{Binding DialogMode, Converter={helper:EnumExcludeConverter}, ConverterParameter='Mini'}">
        <ContentPresenter.ContentTemplateSelector>
            <local:AlterDialogWindowButtonDataTemplateSelector Template0="{StaticResource Template0}" Template1="{StaticResource Template1}" />
        </ContentPresenter.ContentTemplateSelector>
    </ContentPresenter>
</Grid>

至此,一個(gè)消息對(duì)話框就基本完成了。前邊確定功能時(shí)提到調(diào)用消息對(duì)話框的窗口顯示遮罩層。針對(duì)這個(gè)功能,我們可以在AlterDialogWindow中定義一個(gè)ShowDialog方法,參數(shù)是調(diào)用消息對(duì)話框的窗口對(duì)象,然后在該窗口中加上一個(gè)半透明的Grid作為遮罩層,并在AlterDialogWindowOnClosed事件處理邏輯中刪除遮罩層。

public bool? ShowDialog(DependencyObject parent)
{
    if (this.Parent == null && parent != null)
    {
        Grid layer = new Grid() { Name = "maskLayer", Background = new SolidColorBrush(Color.FromArgb(128, 0, 0, 0)) };
        _grid = Window.GetWindow(parent).FindFirstVisualChild<Grid>();
        if (_grid.FindAllVisualChilds<Grid>().FirstOrDefault(r => r.Name == "maskLayer") == null)
            _grid.Children.Add(layer);
        if (_grid.RowDefinitions.Count > 0)
            Grid.SetRowSpan(layer, _grid.RowDefinitions.Count);
        if (_grid.ColumnDefinitions.Count > 0)
            Grid.SetColumnSpan(layer, _grid.ColumnDefinitions.Count);
        this.Owner = Window.GetWindow(parent);
        this.WindowStartupLocation = WindowStartupLocation.CenterOwner;
    }
    return ShowDialog();
}

小結(jié)

本文介紹了自定義消息對(duì)話框的主要思路和代碼,通過造輪子,重新溫習(xí)了樣式、主題、控件模板、數(shù)據(jù)模板、模板選擇器、觸發(fā)器、值轉(zhuǎn)換器等技術(shù)。這也是MaterialDesign、HandyControl等控件珠玉在前,還要自己造輪子的原因之一。

代碼示例

https://github.com/czwy/AlertDialogWindow文章來源地址http://www.zghlxwxcb.cn/news/detail-747173.html

到了這里,關(guān)于[WPF]動(dòng)手寫一個(gè)簡(jiǎn)單的消息對(duì)話框的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • WPF HandyControl 界面交互反饋:對(duì)話框+加載框+列表選擇

    WPF HandyControl 界面交互反饋:對(duì)話框+加載框+列表選擇

    我學(xué)了HandyControl的基礎(chǔ)使用,但是發(fā)現(xiàn)HandyControl 封裝了基礎(chǔ)的消息提示,但是沒有封裝基礎(chǔ)的交互邏輯??赡苁且?yàn)槲覍懥薝niapp,我知道封裝了基礎(chǔ)的交互其實(shí)一般就夠用了。 Uniapp 界面交互反饋 我現(xiàn)在覺得,代碼要低耦合一點(diǎn),每個(gè)模塊都純粹一點(diǎn),這一次我就不添加Nl

    2024年01月19日
    瀏覽(24)
  • MFC為資源對(duì)話框添加消息處理函數(shù)和初始化控件

    MFC為資源對(duì)話框添加消息處理函數(shù)和初始化控件

    現(xiàn)在我VC6新建了一個(gè)對(duì)話框工程;又在資源添加了一個(gè)新的對(duì)話框,并為新的對(duì)話框添加了名為CTestDlg的類; 在主對(duì)話框的cpp文件包含#include \\\"TestDlg.h\\\"; 在主對(duì)話框的cpp文件的OnInitDialog()成員函數(shù)中,添加2句, ?? ?CTestDlg tdlg; ?? ?tdlg.DoModal(); 就可以彈出這個(gè)對(duì)話框; 在新

    2024年01月18日
    瀏覽(32)
  • MFC--對(duì)話框的一個(gè)畫圖控件-HighSpeedChart

    MFC--對(duì)話框的一個(gè)畫圖控件-HighSpeedChart

    下載鏈接在最下面? (免費(fèi)) 可在vs2022,vs2019等vs版本使用 ?成果展示 下載好文件后,將 ?整個(gè)文件夾,添加到項(xiàng)目中,? 1.之后,將控件拖到對(duì)話框里,修改屬性到與圖片相同 ? ???????? 2.為對(duì)話框添加類,我這里添加的是? 3.為控件增加變量,因?yàn)椴皇荲S自帶的控件 4.點(diǎn)

    2024年02月04日
    瀏覽(26)
  • 完善對(duì)話框,點(diǎn)擊登錄對(duì)話框,如果賬號(hào)和密碼匹配,則彈出信息對(duì)話框,給出提示R登錄成功“,提供一個(gè)Ok按鈕,用戶點(diǎn)擊OK后,關(guān)閉登錄界面,跳轉(zhuǎn)到其他界面,

    完善對(duì)話框,點(diǎn)擊登錄對(duì)話框,如果賬號(hào)和密碼匹配,則彈出信息對(duì)話框,給出提示R登錄成功“,提供一個(gè)Ok按鈕,用戶點(diǎn)擊OK后,關(guān)閉登錄界面,跳轉(zhuǎn)到其他界面,

    如果賬號(hào)和密碼不匹配,彈出錯(cuò)誤對(duì)話框,給出信息\\\"賬號(hào)和密碼不匹配,是否重新登錄\\\",并提供兩個(gè)按鈕Yes|No,用戶點(diǎn)擊Yes后,清除密碼框中的內(nèi)容,繼續(xù)讓用戶進(jìn)行登錄,如果用戶點(diǎn)擊No按鈕,則直接關(guān)閉登錄界面如果用戶點(diǎn)擊取消按鈕,則彈出一個(gè)問題對(duì)話框,給出信息

    2024年04月10日
    瀏覽(102)
  • element-ui實(shí)現(xiàn)一個(gè)動(dòng)態(tài)布局的對(duì)話框

    element-ui實(shí)現(xiàn)一個(gè)動(dòng)態(tài)布局的對(duì)話框

    ?我把組件上傳到npm了,具體使用方法請(qǐng)看:https://gitee.com/zengyanfang/tablelist-way/blob/master/README.md#%E5%8F%82%E6%95%B0 前言:在工作中有各種各樣的對(duì)話框,最多就是填寫信息這些的,一般這樣的內(nèi)容都是el-input輸入框,el-select選擇框等等之內(nèi)的,這時(shí)我們就可以封裝成一個(gè)組件,想

    2024年02月01日
    瀏覽(25)
  • ApeForms | C# - WinForm臨時(shí)對(duì)話框(消息框、提示框、輸入框、密碼框、單選框、多選框等)

    ApeForms | C# - WinForm臨時(shí)對(duì)話框(消息框、提示框、輸入框、密碼框、單選框、多選框等)

    ApeForms一款基于WinForm實(shí)現(xiàn)的開源免費(fèi)商用的UI庫(kù),其中提供了一套便于用戶交互的臨時(shí)對(duì)話框組件(Dialog),可用于快速創(chuàng)建開發(fā)中常見的交互對(duì)話框,例如:消息框、提示框、輸入框、單選框、多選框等。 ApeFree.ApeDialogs并不是一個(gè)包含Dialog實(shí)現(xiàn)的UI庫(kù),而是一套Dialog標(biāo)準(zhǔn)(

    2023年04月08日
    瀏覽(115)
  • 微信小程序開發(fā)系列(二十九)·界面交互API·loading 提示框、showModal模態(tài)對(duì)話框、showToast消息提示框

    微信小程序開發(fā)系列(二十九)·界面交互API·loading 提示框、showModal模態(tài)對(duì)話框、showToast消息提示框

    目錄 1.? loading 提示框 1. 1? wx.showLoading()顯示loading提示框 1.2??wx.hideLoading()關(guān)閉 loading 提示框 2.? showModal 模態(tài)對(duì)話框 3.??showToast 消息提示框 ????????小程序提供了一些用于界面交互的 API,例如:loading 提示框、消息提示框、模態(tài)對(duì)話框等 API。 loading 提示框常配合網(wǎng)絡(luò)請(qǐng)

    2024年03月25日
    瀏覽(21)
  • UG\NX二次開發(fā) 非模態(tài)消息對(duì)話框函數(shù) UF_UI_display_nonmodal_msg

    UG\NX二次開發(fā) 非模態(tài)消息對(duì)話框函數(shù) UF_UI_display_nonmodal_msg

    文章作者:里海 來源網(wǎng)站: https://blog.csdn.net/WangPaiFeiXingYuan ? ? ? ? uc1601函數(shù)提供了一個(gè)模態(tài)消息對(duì)話框,ufun函數(shù)中還有一個(gè)非模態(tài)消息對(duì)話框,運(yùn)行一次彈出一個(gè)窗口,不點(diǎn)確定不消失,對(duì)話框顯示后不影響使用其他命令運(yùn)行。 ????????UF_UI_display_nonmodal_msg的第二個(gè)參

    2024年02月15日
    瀏覽(18)
  • Vue中使用element-ui 給按鈕綁定一個(gè)單擊事件,實(shí)現(xiàn)點(diǎn)擊按鈕就彈出一個(gè)dialog對(duì)話框

    Vue中使用element-ui 給按鈕綁定一個(gè)單擊事件,實(shí)現(xiàn)點(diǎn)擊按鈕就彈出一個(gè)dialog對(duì)話框

    1.需求描述 想要實(shí)現(xiàn)點(diǎn)擊一個(gè)按鈕就彈出一個(gè)對(duì)話框,在對(duì)話框中可輸入數(shù)據(jù)進(jìn)行提交,在點(diǎn)擊取消時(shí)對(duì)話框關(guān)閉 2.功能實(shí)現(xiàn) 1.創(chuàng)建按鈕 在element中把找到按鈕的代碼放到div里 2.創(chuàng)建對(duì)話框 在element中找到dialog對(duì)話框?qū)?yīng)的代碼,把代碼粘貼到對(duì)應(yīng)的位置 3.對(duì)話框與按鈕的綁定

    2024年01月18日
    瀏覽(104)
  • 【windows編程之對(duì)話框】對(duì)話框原理,對(duì)話框的創(chuàng)建

    【windows編程之對(duì)話框】對(duì)話框原理,對(duì)話框的創(chuàng)建

    在本章節(jié)中我們來講解Windows/Win32編程中對(duì)話框的原理和對(duì)話框的創(chuàng)建,我們?cè)谇皫灼鹿?jié)中講解到了普通窗口中回調(diào)函數(shù)的處理,在普通窗口的窗口消息處理函數(shù)(回調(diào)函數(shù))中,系統(tǒng)會(huì)首先調(diào)用我們自己寫的回調(diào)函數(shù),我們自己編寫的回調(diào)函數(shù)沒有處理的消息,才會(huì)交給系

    2024年02月03日
    瀏覽(101)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包