Normal
AW: HOW TO: Create a simple media list interfaceFirst, you're right, for ListView controls, there is currently no default style defined, that's why you have to set the Style attribute. I think I'll add a default style to the default skin for ListView to make ListView have a default view without explicit setting a Style.When you use {ThemeResource XXX}, XXX must be defined. In your example 3 from above, ListViewStyle is no defined resource in the default theme so your screen doesn't load (you should see an error when the screen is being loaded). Look into folder Source\UI\UiComponents\SkinBase\Skin\default\themes\default\styles, there you find the files defining the (default-) theme. Look into file OtherControls.xaml, search for the word "DefaultListViewStyle". That is the basic style for ListViews, but as the comment says, the properties ItemTemplate and ItemContainerStyle are not defined by that style yet. That's why more styles are defined: MainMenuListViewStyle, MenuListViewStyle, ContentsMenuListViewStyle, ...You can find out which theme elements are defined when you look into the files in that directory.Button styles are in Buttons.xaml, color definitions in Colors.xaml, constant values like font sizes etc. in Consts.xaml, graphic definitions like the play arrow are in Graphics.xaml and there are some more files for special styles.Typically, in screens styles should be used which are defined in a theme. Only in exceptional cases, an inline style should be defined like in your example 4.If there are not enough styles in the default skin, you can implement a theme extension by just creating a folder default\themes\default\styles in your skin folder, add a file with a name which doesn't exist yet and add your needed style. Take care with the file name because all plugins share the same namespace, so your filename should somehow contain your plugin name to make it unique.
AW: HOW TO: Create a simple media list interface
First, you're right, for ListView controls, there is currently no default style defined, that's why you have to set the Style attribute. I think I'll add a default style to the default skin for ListView to make ListView have a default view without explicit setting a Style.
When you use {ThemeResource XXX}, XXX must be defined. In your example 3 from above, ListViewStyle is no defined resource in the default theme so your screen doesn't load (you should see an error when the screen is being loaded). Look into folder Source\UI\UiComponents\SkinBase\Skin\default\themes\default\styles, there you find the files defining the (default-) theme. Look into file OtherControls.xaml, search for the word "DefaultListViewStyle". That is the basic style for ListViews, but as the comment says, the properties ItemTemplate and ItemContainerStyle are not defined by that style yet. That's why more styles are defined: MainMenuListViewStyle, MenuListViewStyle, ContentsMenuListViewStyle, ...
You can find out which theme elements are defined when you look into the files in that directory.
Button styles are in Buttons.xaml, color definitions in Colors.xaml, constant values like font sizes etc. in Consts.xaml, graphic definitions like the play arrow are in Graphics.xaml and there are some more files for special styles.
Typically, in screens styles should be used which are defined in a theme. Only in exceptional cases, an inline style should be defined like in your example 4.
If there are not enough styles in the default skin, you can implement a theme extension by just creating a folder default\themes\default\styles in your skin folder, add a file with a name which doesn't exist yet and add your needed style. Take care with the file name because all plugins share the same namespace, so your filename should somehow contain your plugin name to make it unique.