簡體   English   中英

自定義消息彈出WPF

[英]Custom message popup WPF

這實際上並沒有描述我的意思,但是我會盡力解釋。 我已經使用C#一年了,從未接觸過WPF。 直到最近,我才意識到它有多棒,並開始使用它。 我現在面臨一個問題。

我想讓用戶知道密碼/用戶名不正確,所以我想讓它更令人滿意,而不是舊的WinForms MessageBox。 我考慮過要創建一個使應用程序變暗的網格,然后在其中顯示一些文本。 但是-怎么可能?...您有更好的主意來顯示應用程序消息(不是彈出窗口)嗎? 謝謝。

您可以創建一個具有半透明背景(如#33000000)和3行網格的UserControl,以顯示標題,消息和“確定”按鈕,如下面所示:

<UserControl x:Class="ApplicationNameSpace.MessageControl" ... >
    <Grid Background="#33000000" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
        <Grid HorizontalAlignment="Center" VerticalAlignment="Center" Background="#FFFFFF" MinHeight="100" MinWidth="200">
            <Grid.RowDefinitions>
                <RowDefinition Height="30"></RowDefinition>
                <RowDefinition Height="*"></RowDefinition>
                <RowDefinition Height="35"></RowDefinition>
            </Grid.RowDefinitions>
            <Grid Grid.Row="0" Background="#EEEEEE">
                <Label Content="Unable to Login" HorizontalAlignment="Center" VerticalAlignment="Center" />
            </Grid>
            <Grid Grid.Row="1" Margin="10,20">
                <TextBlock Text="Wrong username or password. Try again." HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />
            </Grid>
            <Grid Grid.Row="2" Background="#EEEEEE">
                <Button Content="OK" Width="80" Height="25" />
            </Grid>
        </Grid>
    </Grid>
</UserControl>

要使用該控件,您可以在窗口末尾添加控件,並在需要顯示時將可見性更改為“可見”。

<Window x:Class="ApplicationNameSpace.MainWindow"
        xmlns:local="clr-namespace:ApplicationNameSpace" ... >
    <Grid>
        ...
        <local:MessageControl Name="messageControl" Visibility="Collapsed" />
    </Grid>
</Window>

您還可以創建一個通用控件,將標題和消息內容傳遞給show方法,例如MessageBox show方法。 您也可以使用此方法在窗口中以編程方式添加用戶控件元素。

MessageControl

您可以使用WPF 4.5上的驗證和INotifyDataError,並且可以在文本框旁邊顯示一條漂亮消息,例如,檢查此鏈接

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM