반응형
프로그램을 실행했을 시에 초기화면으로 보여주고 싶은 그림 중 임의의 그림 하나를 화면에 전시하려고 한다. 매번 똑같은 이미지가 아닌 확률에 의한 이미지 전시기능이다.
<MainPage.xaml>
- 이미지를 전시할 프레임을 만들고 높이 및 너비 등을 설정한다.
<Page
x:Class="RandomPicture.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:RandomPicture"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Grid>
<Frame Background="Azure" Grid.Row="1" x:Name="frame" Margin="10,10,10,10" HorizontalAlignment="Center"
VerticalAlignment="Center" Width="1550" Height="940">
</Frame>
</Grid>
</Page>
<MainPage.xaml.cs>
- 프로그램 시작 시에 랜덤 하게 이미지를 띄울 페이지(RandomPicturePage)를 불러오는 코드 구문을 작성한다.
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;
// 빈 페이지 항목 템플릿에 대한 설명은 https://go.microsoft.com/fwlink/?LinkId=402352&clcid=0x412에 나와 있습니다.
namespace RandomPicture
{
/// <summary>
/// 자체적으로 사용하거나 프레임 내에서 탐색할 수 있는 빈 페이지입니다.
/// </summary>
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
frame.Navigate(typeof(RandomPicturePage));
}
}
}
<RandomPicturePage.xaml>
- 랜덤으로 보여줄 이미지 추가 : [솔루션 탐색기] > [프로젝트] 마우스 오른쪽 클릭 > [추가] > [기존 항목]에서 4개의 이미지 추가한다.
- StackPanel에 각 이미지를 추가하고, x:Name 네이밍 및 Visibility="Collapsed"으로 설정한다.
<Page
x:Class="RandomPicture.RandomPicturePage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:RandomPicture"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Grid>
<ScrollViewer x:Name="DetailsContent">
<StackPanel>
<Image x:Name="picture1" Height="900" Source="/Assets/puppies.jpg" VerticalAlignment="Top" HorizontalAlignment="Center" Margin="16" Visibility="Collapsed"/>
<Image x:Name="picture2" Height="900" Source="/Assets/cats.jpg" VerticalAlignment="Top" HorizontalAlignment="Center" Margin="16" Visibility="Collapsed"/>
<Image x:Name="picture3" Height="900" Source="/Assets/rabbits.jpg" VerticalAlignment="Top" HorizontalAlignment="Center" Margin="16" Visibility="Collapsed"/>
<Image x:Name="picture4" Height="900" Source="/Assets/hamsters.jpg" VerticalAlignment="Top" HorizontalAlignment="Center" Margin="16" Visibility="Collapsed"/>
</StackPanel>
</ScrollViewer>
</Grid>
</Page>
<RandomPicturePage.xaml.cs>
- 임의의 숫자를 발생시켜 그림의 개수로 나눈 나머지 값을 이용하여 특정 이미지 속성 Visibility를 Visible로 설정한다.
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;
using Windows.Security.Cryptography;
// 빈 페이지 항목 템플릿에 대한 설명은 https://go.microsoft.com/fwlink/?LinkId=234238에 나와 있습니다.
namespace RandomPicture
{
/// <summary>
/// 자체적으로 사용하거나 프레임 내에서 탐색할 수 있는 빈 페이지입니다.
/// </summary>
public sealed partial class RandomPicturePage : Page
{
public RandomPicturePage()
{
this.InitializeComponent();
uint random = CryptographicBuffer.GenerateRandomNumber();
if (random % 4 == 0)
{
picture1.Visibility = Visibility.Visible;
}
else if (random % 4 == 1)
{
picture2.Visibility = Visibility.Visible;
}
else if (random % 4 == 2)
{
picture3.Visibility = Visibility.Visible;
}
else if (random % 4 == 3)
{
picture4.Visibility = Visibility.Visible;
}
else { }
}
}
}
반응형
'프로그래밍 > UWP | WPF' 카테고리의 다른 글
[UWP] 프로그램 실행 시 화면의 크기를 최대화하는 방법 (0) | 2022.08.11 |
---|---|
UWP Grid를 이용한 화면 분할 및 Border를 이용한 Grid 연결 (0) | 2022.05.25 |
UWP 버튼에 마우스 커서 올리면(mouse hover) 안보임 해결방법 (0) | 2022.05.24 |
UWP 페이지 이동 및 Grid 화면 분할 (0) | 2022.05.24 |
UWP(Universal Windows Platform) 예제 프로그래밍 튜토리얼 (0) | 2022.05.09 |
댓글