윈도우 앱개발을 향하여

블로그 이미지
윈도우 10 스토어에 앱을 개발해 올리는 것을 목표로 하고 있습니다. 비전공자가 독학으로 시도하는 일이어서 얼마나 걸릴지 모르겠지만... 아무튼 목표는 그렇습니다!!
by 코딩하는 경제학도
  • Total hit
  • Today hit
  • Yesterday hit

Copyright

이 모든 내용은 Pluralsight에 Mike Halsey가 올린 'Windows File System Troubleshooting'라는 강의의 첫번째 챕터를 듣고 정리한 것입니다(https://app.pluralsight.com/library/courses/windows-file-system-troubleshooting/description). 강의 원작자분께 게시허가도 받았습니다.


Content

1. The Windows File System in depth

2. Troubleshooting Disk and File Errors

3. Managing Permissions, Ownership, and Auditing

4. Managing Security and Security Permissions


Outline

The Windows File and Folder Structure

Windows System Files and Folders

Critical Windows System Files and Folders

Software and App Folders



The Windows File and Folder Structure

PC Firmware Systems

BIOS (7, 8.1, 10)

Uses a single boot partition

System Reserved resides at the beginning of drive 0 on the PC

The System Reserved partition contains all of Windows boot and recovery tools


UEFI (Unified Extensible Firmware Interface) (8.1, 10)

Uses a triple boot partition structure located on drive 0

These include a 100MB EFI partition, a 300MB Recovery partition, and a hidden Security partition

32-bit Windows installations, may only see a System Reserved partition due to lack of support on some 32-bit chipsets



Folders in root folder (e.g., C: drive)

Perflogs folder

Contains Data Collector Sets and log files created by Performance Information and Tools, and Performance Monitor


Program Files and Program Files (x86) folder

win32 applications (not store apps) are installed. 64-bit Windows installations maintain an (x86) folder for compatibility purposes, to separate these from 64-bit applications


Users folder

Contains all files related directly to the currently signed-in user


Windows folder

The repository of core OS files, drivers, run-time files, and other essential files


Inside the root folder of the Windows installation drive are hidden files and folders

System Volume Information folder

Can be found on all drives protected by System Restore

Other hidden files relate to startup or virtual memory, they are bootmgr, BOOTNXT, hiberfil.sys, pagefile.sys, and swapfile.sys. These are all related to startup or things like virtual memory



Windows System Files and Folders

C:Windows

Boot folder

Contains files necessary for the OS to start

Debug folder

Contains error logs

Fonts folder

Contains the installed fonts and typefaces (can't just copy fonts into it)

Globalization folder

Contains language packs, dictionary files, and files related to location

Media folder

Contains audio and video associated with the OS

Prefetch folder

A store for commonly used files. Windows tries to anticipate what you need to load and makes a copy here to load them more quickly.

Resources folder

Contains ease-of-access and other themes

Web folder

Contains images for the Windows 8.1 and 10 lock screen, and desktop wallpapers

MSOCache folder

Only appear on PCs with Microsoft Office installed, it contains a backup copy of the Office installer

Logs folder

Contains log files for many Windows components

etc...


Deskop.ini

A hidden file found in each folder that contains customization and other options for how the folder should be displayed in File Expolorer


Minidump

Contains crash reports created by applications on the PC, they have the file extension .dmp

%LOCALAPPADATA%\CreashDumps

Contains user-specific crash dump files

MEMORY.DMP

Files are Blue Screen of Death (BSOD) crash files, they are found either in the root of the Windows install drive, or in the Windows\System32 folder


# .dmp files cannot be read by Windows Notepad, but can be opened using Visaul Studio, the Windows Driver Kit(WDK), Windows Software Development Kit(SDK). BSOD MEMORY.DMP files can be opened by third-party apps such as BlueScreenView


C:User\specificUserName

AppData folder

The User folder contains application, configuration and driver setting unique to the currently signed-in user


Roaming folder

Contains data and setting that can move with your user account such as Domain files and settings


Local folder

Contains user settings that are tied to the PC


LocalLow folder

is for local settings with low-level access such as web browser privacy or protected mode files



Critical Windows System Files and Folders

C:Windows

SoftwareDistribution folder

Contains all files relating to Windows Update. Should Windows Update malfunction, the contents of this folder can be deleted to reset Windows Update. If there is problem with Windows Update, it's perfectly okay to delete the contents of this folder to reset Windows Update. Just delete them after restart.

System32 folder

Contains all the core files that make up the Windows operating system


Configuration folder

Contains Registry files for the Windows installation. Additional user-specific Registry files can be found in the %userprofile%\ntuser.dat and %userprofile%\AppData\Local\Microsoft\Windows folders

SysWoW64 and WinSxS

Contain (side-by-side) copies of Dynamic Link Library(DLL) and other files for app and driver compatibility both between 32-bit and 64-bit software, also where different apps and drivers may call and require different versions of the same file.


C:ProgramData

Contains application and configuration data for installed applications that pertains to all users on the PC



Software and App Folders

Program Files folder

All win32 desktop applications are installed in 32-bit versions of Windows, and where 64-bit applications are installed for 64-bit versions of Windows


WindowsApps folder

Install location for Windows Store apps in Windows 8.1 and 10. It is protected by heavy security and is inaccessible to even Administrator on the PC

Program FIles (x84) folder

Only be seen in 64-bit Windows installations. All 32-bit win 32 applications are installed 




Summary (생략)


출처

이 모든 내용은 Pluralsight에 Mike Halsey가 올린 'Windows File System Troubleshooting'라는 강의의 첫번째 챕터를 듣고 정리한 것입니다(https://app.pluralsight.com/library/courses/windows-file-system-troubleshooting/description). 제가 정리한 것보다 더 많은 내용과 Demo를 포함하고 있으며 최종 Summary는 생략하겠습니다. Microsoft 지원을 통해 한달간 무료로 Pluralsight의 강의를 들으실 수도 있습니다.

AND

Copyright

이 글은 Channer9에 Andy Wigley, BobTabor, Clint Ruthas, Chavin이라는 4명의 저자가 만드신 'Windows 10 development for absolute beginners'라는 무료강의 시리즈의 정리노트(UWP Cheat Sheet.txt)로 누구나 다운받을 수 있는 파일의 내용을 욺긴 것입니다. 



UWP Cheat Sheet

***************


UWP-004 - What is XAML?

=======================================

XAML - XML Syntax, create instances of Classes that define the UI.


UWP-005 - Understanding Type Converters

=======================================

Type Converters - Convert literal strings in XAML into enumerations, instances of classes, etc.



UWP-006 - Understanding Default Properties, Complex Properties and the Property Element Syntax

=======================================


Default Property ... Ex. sets Content property:

<Button>Click Me</Button>



Complex Properties - Break out a property into its own element syntax:


        <Button Name="ClickMeButton"

                HorizontalAlignment="Left"

                Content="Click Me"

                Margin="20,20,0,0" 

                VerticalAlignment="Top" 

                Click="ClickMeButton_Click"

                Width="200"

                Height="100"

                >

            <Button.Background>

                <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">

                    <GradientStop Color="Black" Offset="0"/>

                    <GradientStop Color="Red" Offset="1"/>

                </LinearGradientBrush>

            </Button.Background>

        </Button>



UWP-007 - Understanding XAML Schemas and Namespace Declarations

=======================================


Don't touch the schema stuff - it's necessary!


Schemas define rules for XAML, for UWP, for designer support, etc.


Namespaces tell XAML parser where to find the definition / rules for a given element in the XAML.




UWP-008 - XAML Layout with Grids

========================================


Layout controls don't have a content property ...

they have a Chidren property of type UIElementCollection.


By embedding any control inside of a layout control, you are implicitly calling the Add method of the Children collection property.


<Grid Background="Black">

  <Grid.RowDefinitions>

    <RowDefinition Height="*" />

    <RowDefinition Height="*" />

    <RowDefinition Height="*" />

  </Grid.RowDefinitions>

  <Grid.ColumnDefinitions>

    <ColumnDefinition Width="*" />

    <ColumnDefinition Width="*" />

    <ColumnDefinition Width="*" />

  </Grid.ColumnDefinitions>

</Grid>



Sizes expressed in terms of:    Explicit pixels - 100


Auto - use the largest value of elements it contains to define the width / height


* (Star Sizing) - Utilize all the available space

1* - Of all available space, give me 1 "share"

2* - Of all available space, give me 2 "shares" 

3* - Of all available space, give me 3 "shares"


6 total shares ... 3* would be 50% of the available width / height.


Elements put themselves into rows and columns using attached property syntax:


...

  ...

  <Button Grid.Row="0" />

</Grid>


- When referencing Rows and Columns ... 0-based.

- There's always one default implicit cell: Row 0, Column 0

- If not specified, element will be in the default cell


UWP-009 - XAML Layout with StackPanel

====================================


<StackPanel>

  <TextBlock>Top</TextBlock>

  <TextBlock>Bottom</TextBlock>

</StackPanel>


- Vertical Orientation by default.

- Left-to-right flow by default when Horizontal orientation.

- Most layouts will combine multiple layout controls.

- Grid will overlap controls.  StackPanel will stack them.



UWP-017 - XAML Layout with the RelativePanel

====================================

It basically defines an area within which you can position and align child objects 

-- in relation to each other 

-- or in relation to the parent panel.


Controls use attached properties to position themselves.


Panel alignment relationships (AlignTopWithPanel, AlignLeftWithPanel, ? are applied first.

Sibling alignment relationships (AlignTopWith, AlignLeftWith, ? are applied second.

Sibling positional relationships (Above, Below, RightOf, LeftOf) are applied last.


<RelativePanel MinHeight="300" Grid.Row="1">    

    <Rectangle Name="RedRectangle" RelativePanel.AlignRightWithPanel="True" />

    <Rectangle RelativePanel.LeftOf="RedRectangle" />

</RelativePanel>



UWP-018 - XAML Layout with the SplitPanel

====================================

The split view allows us to create a panel that can be displayed or hidden.  


We would use the SplitView to implement hamburger navigation.


The are two parts to a SplitView:

1) The part that is hidden by default (Pane)

2) The part that is shown by default (Content)


You define other controls inside of the SplitView.Pane and SplitView.Content.


<SplitView Name="MySplitView" 

    CompactPaneLength="50" 

    IsPaneOpen="False" 

    DisplayMode="CompactInline" 

    OpenPaneLength="200" >

    <SplitView.Pane>

    </SplitView.Pane>

    <SplitView.Content>

    </SplitView.Content>

</SplitView>


Inline ?Panel completely covers content.  When expanded, panel pushes content.


CompactInline ?Pane covers most of the Content.  When expanded, panel pushes content.


Overlay ?Panel completely covers content.  When expanded, panel covers content.


CompactOverlay ?Panel covers most of the content.  When expanded, panel covers content.


Open / Close Pane in C#: MySplitView.IsPaneOpen = !MySplitView.IsPaneOpen;




UWP_019 - Working with Navigation

====================================

App > Window > Frame > MainPage


You can load pages into a child frame or into the root frame:


Frame.Navigate(typeof(Page2), additionalParameter);



You can retrieve additionalParameter on the page you navigated to:


    protected override void OnNavigatedTo(NavigationEventArgs e)

    {

      value = (string)e.Parameter;

    }


Traverse back stack (history):


if (Frame.CanGoBack) {

  Frame.GoBack();

}


if (Frame.CanGoForward) {

  Frame.GoForward();

}


Create a global variable by declaring a static internal field in the App class definition.


UWP-020 - Common XAML Controls - Part 1

====================================


<CheckBox Name="MyCheckBox" Content="Agree?" Tapped="MyCheckBox_Tapped" />


CheckBoxResultTextBlock.Text = MyCheckBox.IsChecked.ToString();




<RadioButton Name="YesRadioButton" Content="Yes" GroupName="MyGroup" checked="RadioButton_Checked" />

<RadioButton Name="NoRadioButton" Content="No" GroupName="MyGroup" Checked="RadioButton_Checked" />


RadioButtonTextBlock.Text = (bool)YesRadioButton.IsChecked ? "Yes" : "No";



<ComboBox SelectionChanged="ComboBox_SelectionChanged" >

    <ComboBoxItem Content="Fourth" />

    <ComboBoxItem Content="Fifth" />

    <ComboBoxItem Content="Sixth" IsSelected="True" />

</ComboBox>



if (ComboBoxResultTextBlock == null) return;

var combo = (ComboBox)sender;

var item = (ComboBoxItem)combo.SelectedItem;

ComboBoxResultTextBlock.Text = item.Content.ToString();



<ListBox Name="MyListBox" SelectionMode="Multiple" SelectionChanged="ListBox_SelectionChanged">

    <ListBoxItem Content="First" />

    <ListBoxItem Content="Second" />

    <ListBoxItem Content="Third" />

</ListBox>


var selectedItems = MyListBox.Items.Cast<ListBoxItem>()

                      .Where(p => p.IsSelected)

                        .Select(t => t.Content.ToString())

                          .ToArray();


ListBoxResultTextBlock.Text = string.Join(", ", selectedItems);



<Image Source="Assets/logo.png" Stretch="UniformToFill" />




<ToggleButton Name="MyToggleButton" Content="Premium Option" IsThreeState="True" Click="MyToggleButton_Click" />


ToggleButtonResultTextBlock.Text = MyToggleButton.IsChecked.ToString();



<ToggleSwitch>

    <ToggleSwitch.OffContent>

        <TextBlock Text="I'm off right now." />

    </ToggleSwitch.OffContent>

    <ToggleSwitch.OnContent>

        <TextBlock Text="I'm on!" />

    </ToggleSwitch.OnContent>

</ToggleSwitch>



UWP-021 - Implementing a Simple Hamburger Navigation Menu

====================================

Jerry Nixon's Example: http://bit.do/hamburger-nav


Use Character Map to find the code to display icons using Segoe MDL5 Assets.


Hamburger:  &#xE700;


Use ListBox and ListBoxItems for the navigation links inside of a SplitView.



UWP-025 - Common XAML Controls - Part 2

====================================


<TimePicker ClockIdentifier="12HourClock" />


<CalendarDatePicker PlaceholderText="choose a date" />


<CalendarView SelectionMode="Multiple"

SelectedDatesChanged="MyCalendarView_SelectedDatesChanged" />


private void MyCalendarView_SelectedDatesChanged(CalendarView sender, CalendarViewSelectedDatesChangedEventArgs args)

{

    var selectedDates = sender.SelectedDates.Select(p => p.Date.Month.ToString() + "/" + p.Date.Day.ToString()).ToArray();

    var values = string.Join(", ", selectedDates);

    CalendarViewResultTextBlock.Text = values;

}


<Button Content="Flyout">

  <Button.Flyout>

    <Flyout x:Name="MyFlyout">


    </Flyout>

  </Button.Flyout>

</Button>


MyFlyout.Hide();



<Button Content="FlyoutMenu">

  <Button.Flyout>

    <MenuFlyout Placement="Bottom">

      <MenuFlyoutItem Text="Item 1" />

      <MenuFlyoutItem Text="Item 2" />

      <MenuFlyoutSeparator />

      <MenuFlyoutSubItem Text="Item 3">

        <MenuFlyoutItem Text="Item 4" />

        <MenuFlyoutSubItem Text="Item 5">

          <MenuFlyoutItem Text="Item 6" />

          <MenuFlyoutItem Text="Item 7" />

        </MenuFlyoutSubItem>

      </MenuFlyoutSubItem>

      <MenuFlyoutSeparator />

      <ToggleMenuFlyoutItem Text="Item 8" />

    </MenuFlyout>

  </Button.Flyout>

</Button>

<!-- You can apply this to anything ... ex. Image: -->

<!-- https://msdn.microsoft.com/en-us/library/windows/apps/xaml/dn308516.aspx -->



<AutoSuggestBox Name="MyAutoSuggestBox" 

    QueryIcon="Find" 

    PlaceholderText="Search" 

    TextChanged="MyAutoSuggestBox_TextChanged"  />


private string[] selectionItems = new string[] { "Ferdinand", "Frank", "Frida", "Nigel", "Tag", "Tanya", "Tanner", "Todd" };


private void MyAutoSuggestBox_TextChanged(AutoSuggestBox sender, AutoSuggestBoxTextChangedEventArgs args)

{

    var autoSuggestBox = (AutoSuggestBox)sender;

    var filtered = selectionItems.Where(p => p.StartsWith(autoSuggestBox.Text)).ToArray();

    autoSuggestBox.ItemsSource = filtered;

}


<Slider Maximum="100" Minimum="0" />


<ProgressBar Maximum="100" Value="{x:Bind MySlider.Value, Mode=OneWay}" />


<ProgressRing IsActive="True" />




UWP-026 - Working with the ScrollViewer

====================================


<ScrollViewer 

HorizontalScrollBarVisibility="Auto" 

        VerticalScrollBarVisibility="Auto">


</ScrollViewer>


You can put anything inside of it, however, don't put it inside of a StackPanel!




UWP-027 - Canvas and Shapes

====================================

Canvas allows you to do absolute positioning via attached properties.



<Line X1="10" 

X2="200" 

Y1="10" 

Y2="10" 

Stroke="Black" 

Fill="Black" 

StrokeThickness="5" 

StrokeEndLineCap="Triangle" />


<Polyline Canvas.Left="150" 

Canvas.Top="0" 

        Stroke="Black" 

        StrokeThickness="5" 

        Fill="Red"

        Points="50,25 0,100 100,100 50,25" 

StrokeLineJoin="Round" 

StrokeStartLineCap="Round" 

StrokeEndLineCap="Round" />


<Rectangle />

<Ellipse />


Canvas.ZIndex="100"


The higher the ZIndex, the higher in the stack it appears (covering what is below it).



UWP-028 - XAML Styles

====================================


https://dev.windows.com/en-us/design


<Page.Resources>

    <SolidColorBrush x:Key="MyBrush" Color="Brown" />

    <Style TargetType="Button" x:Key="MyButtonStyle">

        <Setter Property="Background" Value="Blue" />

        <Setter Property="FontFamily" Value="Arial Black" />

        <Setter Property="FontSize" Value="36" />

    </Style>

</Page.Resources>


Binding: {StaticResource ResourceName}


<Button Content="OK" Style="{StaticResource MyButtonStyle}" />


Create Page or Application level resource dictionaries


<Application.Resources>

</Application.Resources>


Split up your styles into Resource Dictionary files:


<!-- Dictionary1.xaml -->

<ResourceDictionary>

    <SolidColorBrush x:Key="brush" Color="Red"/>

</ResourceDictionary>



<Page>

    <Page.Resources>

        <ResourceDictionary>

            <ResourceDictionary.MergedDictionaries>

                <ResourceDictionary Source="Dictionary1.xaml"/>

                <ResourceDictionary Source="Dictionary2.xaml"/>

            </ResourceDictionary.MergedDictionaries>

        </ResourceDictionary>

    </Page.Resources>


    <TextBlock Foreground="{StaticResource SomeStyle}" Text="Hi" />

</Page>




UWP-029 - XAML Themes

====================================


http://bit.do/theme-resources



Put your mouse on a style, hit F12 to open generic.xaml


<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">

    <Rectangle Width="100" Height="100" Fill="{ThemeResource SystemAccentColor}" />

    <Rectangle Width="50" Height="50" Fill="{ThemeResource SystemColorWindowColor}" />

</Grid>


<App RequestedTheme="Light">


High Contrast themes override styles.


Lots of different styles of system styles defined:

<TextBlock Text="page name" Style="{StaticResource HeaderTextBlockStyle}" />


Many styles defined in generic.xaml used BasedOn attribute ... and you can too!



UWP-037 - Utilizing the VisualStateManager to Create Adaptive Triggers

=================================================

VisualStateManager manages changes to XAML element attributes based on screen size using Adaptive Triggers (MinWindowWidth, MinWindowHeight) and Setters (to change target property values).


<VisualStateManager.VisualStateGroups>

  <VisualStateGroup>

    <VisualState x:Name="NarrowLayout">

      <VisualState.StateTriggers>

        <AdaptiveTrigger MinWindowWidth="0"/>

      </VisualState.StateTriggers>

      <VisualState.Setters>

        <Setter Target="MyImage.Width" Value="200" />

        <Setter Target="LayoutGrid.Background" Value="Blue" />

      </VisualState.Setters>

    </VisualState>

    <VisualState x:Name="WideLayout">

      <VisualState.StateTriggers>

        <AdaptiveTrigger MinWindowWidth="600"/>

      </VisualState.StateTriggers>

      <VisualState.Setters>

        <Setter Target="MyImage.Width" Value="200" />

        <Setter Target="LayoutGrid.Background" Value="Blue" />

      </VisualState.Setters>

    </VisualState>

  </VisualStateGroup>

</VisualStateManager.VisualStateGroups>



UWP-038 - Working with Adaptive Layout

=======================================


http://bit.do/adaptive-ui


Use adaptive triggers to move StackPanels (filled with content) into different Grid cells.



UWP-039 - Adaptive Layout with Device Specific Views

======================================================

Choose different versions of files to use based on the device running the app.


Example:


/DeviceFamily-Mobile

-- MainPage.xaml

/DeviceFamily-Desktop

-- MainPage.xaml


... or use a different file suffix for different device specific views:


MainPage.DeviceFamily-Mobile.xaml

MainPage.DeviceFamily-Desktop.xaml


http://bit.do/device-specific-views




UWP-40 - Data Binding to the GridView and ListView Controls

==========================================================

Bind to a List<T> where T is a POCO in your app (I put mine in the Models folder).


<Page

  ...

  xmlns:data="using:xBindDataExample.Models">

  <Page.Resources>

    <DataTemplate x:DataType="data:Book" x:Key="BookDataTemplate">

      <StackPanel HorizontalAlignment="Center">

        <Image Source="{x:Bind CoverImage}" />

        <TextBlock Text="{x:Bind Title}" />

        <TextBlock Text="{x:Bind Author}" />

      </StackPanel>

    </DataTemplate>

  </Page.Resources>

  ...

  <GridView ItemsSource="{x:Bind Books}" 

    IsItemClickEnabled="True" 

    ItemClick="GridView_ItemClick"

    ItemTemplate="{StaticResource BookDataTemplate}">

  </GridView>

  ...



Code Behind

------------


public sealed partial class MainPage : Page

{

  private List<Book> Books;


  public MainPage()

  {

    this.InitializeComponent();

    Books = BookManager.GetBooks();

  }


  private void GridView_ItemClick(object sender, ItemClickEventArgs e)

  {

    var book = (Book)e.ClickedItem;

    ResultTextBlock.Text = "You selected " + book.Title;

  }

}



UWP-041 - Keeping Data Controls Updated with ObservableCollection

=======================================

If the contents of List<T> will change, make sure you use ObservableCollection<T> instead!



UWP-042 - Utilizing User Controls as Data Templates

========================================

If you intend to combine the VisualStateManager with data bound controls, you will need to put your Data Template code inside of a User Control, then create the VisualStateManager code inside of the User Control.


1) Create a User Control.


2) Cut the Data Template out of the MainPage.xaml and copy it into the User Control.


3) Reference the User Control from inside the Data Template:


<local:ContactTemplate HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />


4) Modify the contents of the User Control changing x:Bind statements to utilize object.property notation:


<UserControl>

  <StackPanel>

    <Image Source="{x:Bind Contact.AvatarPath}" />

    <TextBlock Text="{x:Bind Contact.FirstName}" />

    <TextBlock Text="{x:Bind Contact.LastName}" />

  </StackPanel>

</UserControl>


5) Add this in the User Control's Code Behind:

public Models.Contact Contact { get { return this.DataContext as Models.Contact; } }


public ContactTemplate()

{

  this.InitializeComponent();

  this.DataContextChanged += (s, e) => Bindings.Update();

}




출처

이 글은 Channer9에 Andy Wigley, BobTabor, Clint Ruthas, Chavin이라는 4명의 저자가 만드신 'Windows 10 development for absolute beginners'라는 무료강의 시리즈에서 강의 정리노트(UWP Cheat Sheet.txt)로 누구나 다운받을 수 있는 파일의 내용을 욺긴 것입니다. 강의는 더 많은 내용과 Demo를 포함하고 있습니다.

AND

#region Assembly Windows.Foundation.UniversalApiContract, Version=4.0.0.0, Culture=neutral, PublicKeyToken=null, ContentType=WindowsRuntime

// C:\Program Files (x86)\Windows Kits\10\References\10.0.15063.0\Windows.Foundation.UniversalApiContract\4.0.0.0\Windows.Foundation.UniversalApiContract.winmd

#endregion


using Windows.Foundation;

using Windows.Foundation.Metadata;

using Windows.UI.Core;


namespace Windows.UI.Xaml

{

    //

    // Summary:

    //     Represents an object that participates in the dependency property system. Windows.UI.Xaml.DependencyObject

    //     is the immediate base class of many important UI-related classes, such as Windows.UI.Xaml.UIElement,

    //     Windows.UI.Xaml.Media.Geometry, Windows.UI.Xaml.FrameworkTemplate, Windows.UI.Xaml.Style,

    //     and Windows.UI.Xaml.ResourceDictionary.

    [Composable(typeof(IDependencyObjectFactory), CompositionType.Protected, 65536, "Windows.Foundation.UniversalApiContract")]

    [ContractVersion(typeof(UniversalApiContract), 65536)]

    [MarshalingBehavior(MarshalingType.Agile)]

    [Threading(ThreadingModel.Both)]

    [WebHostHidden]

    public class DependencyObject : IDependencyObject, IDependencyObject2

    {

        //

        // Summary:

        //     Provides base class initialization behavior for Windows.UI.Xaml.DependencyObject

        //     derived classes.

        protected DependencyObject();


        //

        // Summary:

        //     Returns the current effective value of a dependency property from a Windows.UI.Xaml.DependencyObject.

        //

        // Parameters:

        //   dp:

        //     The Windows.UI.Xaml.DependencyProperty identifier of the property for which to

        //     retrieve the value.

        //

        // Returns:

        //     Returns the current effective value.

        public object GetValue(DependencyProperty dp);

        //

        // Summary:

        //     Sets the local value of a dependency property on a Windows.UI.Xaml.DependencyObject.

        //

        // Parameters:

        //   dp:

        //     The identifier of the dependency property to set.

        //

        //   value:

        //     The new local value.

        public void SetValue(DependencyProperty dp, object value);

        //

        // Summary:

        //     Clears the local value of a dependency property.

        //

        // Parameters:

        //   dp:

        //     The Windows.UI.Xaml.DependencyProperty identifier of the property for which to

        //     clear the value.

        public void ClearValue(DependencyProperty dp);

        //

        // Summary:

        //     Returns the local value of a dependency property, if a local value is set.

        //

        // Parameters:

        //   dp:

        //     The Windows.UI.Xaml.DependencyProperty identifier of the property for which to

        //     retrieve the local value.

        //

        // Returns:

        //     Returns the local value, or returns the sentinel value Windows.UI.Xaml.DependencyProperty.UnsetValue

        //     if no local value is set.

        public object ReadLocalValue(DependencyProperty dp);

        //

        // Summary:

        //     Returns any base value established for a dependency property, which would apply

        //     in cases where an animation is not active.

        //

        // Parameters:

        //   dp:

        //     The identifier for the desired dependency property.

        //

        // Returns:

        //     The returned base value.

        public object GetAnimationBaseValue(DependencyProperty dp);

        //

        // Summary:

        //     Registers a notification function for listening to changes to a specific Windows.UI.Xaml.DependencyProperty

        //     on this Windows.UI.Xaml.DependencyObject instance.

        //

        // Parameters:

        //   dp:

        //     The dependency property identifier of the property to register for property-changed

        //     notification.

        //

        //   callback:

        //     A callback based on the Windows.UI.Xaml.DependencyPropertyChangedCallback delegate,

        //     which the system invokes when the value of the specified property changes.

        //

        // Returns:

        //     A token that represents the callback, used to identify the callback in calls

        //     to Windows.UI.Xaml.DependencyObject.UnregisterPropertyChangedCallback(Windows.UI.Xaml.DependencyProperty,System.Int64).

        public long RegisterPropertyChangedCallback(DependencyProperty dp, DependencyPropertyChangedCallback callback);

        //

        // Summary:

        //     Cancels a change notification that was previously registered by calling Windows.UI.Xaml.DependencyObject.RegisterPropertyChangedCallback(Windows.UI.Xaml.DependencyProperty,Windows.UI.Xaml.DependencyPropertyChangedCallback).

        //

        // Parameters:

        //   dp:

        //     The dependency property identifier of the property to unregister for property-changed

        //     notification.

        //

        //   token:

        //     A token that represents the callback (returned by Windows.UI.Xaml.DependencyObject.RegisterPropertyChangedCallback(Windows.UI.Xaml.DependencyProperty,Windows.UI.Xaml.DependencyPropertyChangedCallback)

        //     ).

        public void UnregisterPropertyChangedCallback(DependencyProperty dp, long token);


        //

        // Summary:

        //     Gets the Windows.UI.Core.CoreDispatcher that this object is associated with.

        //     The Windows.UI.Core.CoreDispatcher represents a facility that can access the

        //     Windows.UI.Xaml.DependencyObject on the UI thread even if the code is initiated

        //     by a non-UI thread.

        //

        // Returns:

        //     The Windows.UI.Core.CoreDispatcher that Windows.UI.Xaml.DependencyObject object

        //     is associated with, which represents the UI thread.

        public CoreDispatcher Dispatcher { get; }

    }

}

AND

ARTICLE CATEGORY

분류 전체보기 (56)
Programming (45)
MSDN (4)
개발노트 (2)
reference (5)

RECENT ARTICLE

RECENT COMMENT

CALENDAR

«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

ARCHIVE