[英]How to get logged in PC username in Windows Store Apps?
像在這個線程中如何使用C#獲取.NET中的當前用戶名?
但是代碼
string userName = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
似乎不適用於Windows 8應用程序。
我怎樣才能做到這一點?
第1步:
使用C#和XAML語言創建空白Windows應用商店應用程序。
第2步:
x:Class="SetAccountPicture.UserProfileInformation"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:SetAccountPicture"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
<Grid Height="500" Width="1000">
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition Height="auto"></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<Button x:Name="Get_UserInformation" Click="Get_UserInformation_Click_1" Grid.Row="0" Grid.ColumnSpan="2" HorizontalAlignment="Center" Height="60" Width="250" Content="Get User Information" FontSize="20"></Button>
<TextBlock Text="User's Display Name is: " Grid.Row="1" Grid.Column="0" FontSize="25" VerticalAlignment="Center" HorizontalAlignment="Center"></TextBlock>
<TextBlock Text="User First Name is: " Grid.Row="2" Grid.Column="0" FontSize="25" VerticalAlignment="Center" HorizontalAlignment="Center"></TextBlock>
<TextBlock Text="User Last Name is: " Grid.Row="3" Grid.Column="0" FontSize="25" VerticalAlignment="Center" HorizontalAlignment="Center"></TextBlock>
<TextBlock Text="Account Picture is: " Grid.Row="4" Grid.Column="0" FontSize="25" VerticalAlignment="Center" HorizontalAlignment="Center"></TextBlock>
<TextBlock x:Name="UserName" Text="User Name is: " Grid.Row="1" Grid.Column="1" FontSize="25" VerticalAlignment="Center" HorizontalAlignment="Center"></TextBlock>
<TextBlock x:Name="FistName" Text="First Name is: " Grid.Row="2" Grid.Column="1" FontSize="25" VerticalAlignment="Center" HorizontalAlignment="Center"></TextBlock>
<TextBlock x:Name="LastName" Text="Last Name is: " Grid.Row="3" Grid.Column="1" FontSize="25" VerticalAlignment="Center" HorizontalAlignment="Center"></TextBlock>
<Image x:Name="AccountPicture" Height="150" Width="200" Grid.Row="4" Grid.Column="2" Stretch="Fill"></Image>
</Grid>
</Grid>
</Page>
第3步:
using Windows.Storage;
using Windows.Storage.Pickers;
using Windows.Storage.Streams;
using Windows.System.UserProfile;
using Windows.UI.Core;
using Windows.UI.Xaml.Media.Imaging;
第四步:
string displayName = await UserInformation.GetDisplayNameAsync();
if (string.IsNullOrEmpty(displayName))
{
rootPage.NotifyUser("No Display Name was returned", NotifyType.StatusMessage);
}
else
{
UserName.Text = displayName;
}
獲取當前用戶的第一個名稱。
注意:這僅適用於Microsoft帳戶。
string firstName = await UserInformation.GetFirstNameAsync();
if (string.IsNullOrEmpty(firstName))
{
rootPage.NotifyUser("No Display Name was returned", NotifyType.StatusMessage);
}
else
{
FistName.Text = firstName;
}
獲取當前用戶的姓氏; 看到:
string lastName = await UserInformation.GetLastNameAsync();
if (string.IsNullOrEmpty(lastName))
{
rootPage.NotifyUser("No Display Name was returned", NotifyType.StatusMessage);
}
else
{
LastName.Text = lastName;
}
獲取當前用戶的帳戶圖片。
注意:您可以請求三種類型的圖像。 例如:小,大和視頻(動態圖像)。 如果可用,它返回。
StorageFile image = UserInformation.GetAccountPicture(AccountPictureKind.SmallImage) as StorageFile;
if (image != null)
{
rootPage.NotifyUser("SmallImage path = " + image.Path, NotifyType.StatusMessage);
try
{
IRandomAccessStream imageStream = await image.OpenReadAsync();
BitmapImage bitmapImage = new BitmapImage();
bitmapImage.SetSource(imageStream);
AccountPicture.Source = bitmapImage;
}
catch (Exception ex)
{
rootPage.NotifyUser("Error opening stream: " + ex.ToString(), NotifyType.ErrorMessage);
}
}
else
{
rootPage.NotifyUser("Small Account Picture is not available", NotifyType.StatusMessage);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.