Hope you could help me with something I'm not getting any results on Google. I have my MainPage.xaml which has a button inside a Hamburger menu. When I click this button I want to be able to open BlankPage.xaml inside a SplitView in MainPage.xaml but as a closable tab. The only reference I have is this picture. this picture
Note the red circle is what I want to be able to do. And note I am using C++.
Thanx in advance.
[Edit] I decided to go for a StackPanel which contains another StackPanel with 2 buttons. One button to open the tab and another to close is completely.
<StackPanel x:Name="TabPanel" Orientation="Horizontal" HorizontalAlignment="Left" VerticalAlignment="Top" Width="1450" Height="26" Margin="50 40 0 0">
<StackPanel x:Name="PageTab1" Orientation="Horizontal" HorizontalAlignment="Left">
<Button x:Name="TabNameBtn" Content="Tab1" FontSize="11" Foreground="Black" BorderThickness="0" HorizontalAlignment="Left" VerticalAlignment="Center" Height="26" Margin="0 0 0 0"/>
<Button x:Name="TabCloseBtn" FontFamily="Segoe MDL2 Assets" Content="" FontWeight="ExtraLight" FontSize="10" Foreground="Black" BorderThickness="1" HorizontalAlignment="Right" VerticalAlignment="Center" Height="26" Width="26" Margin="0 0 0 0"/>
</StackPanel>
</StackPanel>
How do I add another "PageTab1" (Incremented as "PageTab2, "PageTab3"...) to "TabPanel" with c++ code when a button is pressed?
Related
I want to implement a ListView that loads new content when is scrolled (it will have over 2000 elements) with a scrollbar. This is what I have:
<ListView
Width="500"
MaxHeight="400"
IsItemClickEnabled = "False"
SelectionMode ="None"
IncrementalLoadingThreshold="5"
IncrementalLoadingTrigger="Edge"
ScrollViewer.VerticalScrollBarVisibility="Visible"
ScrollViewer.VerticalScrollMode="Enabled"/>
The list works perfectly fine but the scrollbar is not visible. How can I make it work?
there is another way to go.
you can use "ScrollViewer" and "Stackpanel" as main content of "ScrollViewer".
then set the "Orientation". finally add list itmes as childrens of "Stackpanel"
please take a look at sample:
<ScrollViewer
Width="500"
MaxHeight="400"
VerticalScrollBarVisibility="Visible"
VerticalScrollMode="Enabled"
>
<StackPanel Orientation="Vertical" SizeChanged="items_modified_event">
<ListViewItem Content="item1" />
<ListViewItem Content="item2" />
<ListViewItem Content="item3" />
<ListViewItem Content="item4" />
.
.
.
.
</StackPanel>
</ScrollViewer>
The problem was with a fixed with. After removing it, the scrollbar is visible.
I have a ListView that uses a custom ItemTemplate (doesn't everyone?):
<ListView>
<!-- ... -->
<ListView.ItemTemplate>
<DataTemplate x:DataType="x:String">
<MyGreatControl Thing="{x:Bind}" />
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
MyGreatControl today has extensive keyboard handling code built-in, but due to some refactoring, I need to move the actual handlers to the ListView itself. However, I don't want to move all of the code in MyGreatControl to the ListView (for many reasons).
If I have an arbitrary ListViewItem (which, for example, I can get from an event handler), how can I access the MyGreatControl instance in its DataTemplate?
MyGreatControl^ GetMyGreatControlFromListViewItem(ListViewItem^ listViewItem) {
// ???
}
Disclaimer: I work for Microsoft.
You want to use ContentTemplateRoot!
MyGreatControl^ GetMyGreatControlFromListViewItem(ListViewItem^ listViewItem) {
return safe_cast<MyGreatControl^>(listViewItem->ContentTemplateRoot);
}
This also works for any arbitrary element—if you have a StackPanel, for example, ContentTemplateRoot will return the StackPanel instance you want:
<ListView.ItemTemplate>
<DataTemplate x:DataType="x:String">
<StackPanel><!-- This is what you get! -->
<TextBlock Text="{x:Bind}" />
<Button Content="Foo" IsTabStop="False" />
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
You can then use normal visual tree navigation to find Children, etc.
I'm playing with UWP in plain Win32 projects, reading more about C++/WinRT here, the XamlReader, the events and the control collection.
For this I 've made a small library which enscapulates such a control into a plain HWND and I can set the text using WM_SETTEXT.
Is there documentation on which of these controls are available in plain Win32 and which arent?
For example, this markup works:
<StackPanel x:Name="LayoutRoot" Margin="10">
<Button x:Name="btn1" Content="Hover to Click"
Click="OnClick1" ClickMode="Hover"
Margin="5" Width="150"
HorizontalAlignment="Left"
Foreground="Green"/>
<TextBlock x:Name="text1" Margin="5,8,0,0" />
<Button x:Name="btn2" Content="Press to Click"
Click="OnClick2" ClickMode="Press"
Margin="5,5,5,5" Width="150"
HorizontalAlignment="Left"
Foreground="Blue"/>
<TextBlock x:Name="text2" Margin="5,8,0,0" />
<Button x:Name="btn3" Content="Reset"
Click="OnClick3" ClickMode="Release"
Margin="5,5,5,5" Width="150"
HorizontalAlignment="Left"/>
<TextBlock x:Name="text3" Margin="5,8,0,0" />
</StackPanel>
Generally, many controls work. However some, like WebView, don't:
<WebView x:Name="webView1" Source="http://www.contoso.com"/>
When using XamlReader::Load to load this, it throws {value=0x802b000a } winrt::hresult E_XAMLPARSEFAILED:XAML parsing failed.
Do I miss something? Are there some controls not yet available? Do I need some additional dependency?
Thanks a lot.
I am following Microsoft's documentation to implement a TreeView in a Universal Windows Platform app in C++. I have successfully been able to create a tree view with one node using the following codes:
XAML:
<TreeView x:Name="treeSolution"></TreeView>
C++:
TreeViewNode ^treeNode = ref new TreeViewNode();
treeNode->Content = "Hello";
treeSolution->RootNodes->Append(treeNode);
Now, I want to set the text to bold. I tried the following:
TextBlock ^textBlock = ref new TextBlock();
textBlock->Text = "Hello";
textBlock->FontWeight = Windows::UI::Text::FontWeights::Bold;
treeNode->Content = textBlock;
treeSolution->RootNodes->Append(treeNode);
The code displays Windows.UI.Xaml.Controls.TextBlock instead of Hello in bold.
The documentation says that In Windows 10, version 1803, you have to retemplate the TreeView control and specify a custom ItemTemplate if your content is not a string. It then gives a complex example using the Music and Picture library.
Could somebody provide a simple example of how to display the text in bold? Thanks.
You have to provide a custom style for the whole control in XAML to be able to set the TreeViewItemDataTemplate:
<DataTemplate x:Key="TreeViewItemDataTemplate">
<Grid Height="44">
<TextBlock
Text="{Binding Content}"
HorizontalAlignment="Left"
VerticalAlignment="Center"
Style="{ThemeResource BodyTextBlockStyle}"
FontWeight="Bold" />
</Grid>
</DataTemplate>
<Style TargetType="TreeView">
<Setter Property="IsTabStop" Value="False" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="TreeView">
<TreeViewList x:Name="ListControl"
ItemTemplate="{StaticResource TreeViewItemDataTemplate}"
ItemContainerStyle="{StaticResource TreeViewItemStyle}"
CanDragItems="True"
AllowDrop="True"
CanReorderItems="True">
<TreeViewList.ItemContainerTransitions>
<TransitionCollection>
<ContentThemeTransition />
<ReorderThemeTransition />
<EntranceThemeTransition IsStaggeringEnabled="False" />
</TransitionCollection>
</TreeViewList.ItemContainerTransitions>
</TreeViewList>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
In an Android project I have this kind of alert dialog:
I want to replicate this in Windows Phone 8, however I haven't been able to find a suitable plugin/widget to do so. The list itself is populated by SharedPreferences.
My plan for Windows 8 was to use Isolated Storage Files to grab the required entries, is this the best way?
<clippy>It looks like you want to display a list to the user and allow them to pick an option </clippy>
If that is the case then you can use the ListPicker from the WP Toolkit. Install the nuget pack and use as such:
<toolkit:ListPicker FullModeHeader="CHOOSE LOCATION" ItemsSource="{Binding Cities}">
<toolkit:ListPicker.FullModeItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Margin="0,20" TextWrapping="Wrap"
Style="{StaticResource PhoneTextExtraLargeStyle}">
<Run Text="{Binding Description}" />
<Run Text="-" />
<Run Text="{Binding Quality}" />
</TextBlock >
</StackPanel>
</DataTemplate>
</toolkit:ListPicker.FullModeItemTemplate>
</toolkit:ListPicker>