Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The TreeView class does not respect the HorizontalContentAlignment property of the ItemContainerStyle #203

Closed
rawlinson opened this issue Jan 18, 2019 · 4 comments · Fixed by #218
Labels
area-TreeView bug Something isn't working good first issue A straightforward issue that's a good condidate if you are new to contributing help wanted Issue ideal for external contributors team-Controls Issue for the Controls team

Comments

@rawlinson
Copy link
Contributor

rawlinson commented Jan 18, 2019

Setting the HorizontalContentAlignment property off the ItemContainerStyle seems to do nothing. For example, if you set it to Stretch, the Content of the TreeViewItems is still left-aligned.

<TreeView.ItemContainerStyle>
    <Style TargetType="TreeViewItem">
        <Setter Property="HorizontalContentAlignment"  Value="Stretch"></Setter>
    </Style>
</TreeView.ItemContainerStyle>

This seems to be because the ContentPresenter within the TreeViewItem is in a StackPanel. The StackPanel itself is the only item in a Grid - removing the StackPanel and laying out its contents by ColumnDefinitions in the Grid fixes the issue. The StackPanel also has its Margin property bound to take care of indentations - this can instead be moved to the Padding property of the grid.

@rawlinson rawlinson changed the title The TreeView class HorizontalContentAlignment property does not work. The TreeView class does not respect the HorizontalContentAlignment property of the ItemContainerStyle Jan 18, 2019
@jevansaks
Copy link
Member

Good bug! Seems like you also know how to fix it, do you want to contribute the fix? :)

@jevansaks jevansaks added bug Something isn't working good first issue A straightforward issue that's a good condidate if you are new to contributing help wanted Issue ideal for external contributors area-TreeView labels Jan 22, 2019
@rawlinson
Copy link
Contributor Author

I'm happy to contribute the fix - it's a simple change to TreeViewItem.xaml - but I notice there is also a TreeViewItem_rs1.xaml file, which I presume needs changing as well. Is there a way to force its use to make sure the change is correct? I'm running RS5.

@kmahone
Copy link
Member

kmahone commented Jan 23, 2019

@rawlinson take a look at dev\dll\ThemeResources.cpp. You should be able to modify the file for testing purposes to force a particular version of generic.xaml to be loaded at runtime.

rawlinson added a commit to rawlinson/microsoft-ui-xaml that referenced this issue Jan 23, 2019
…ft#203)

Remove the StackPanel containing the ContentPresenter and move layout
and indentation to the containing Grid.

Fix microsoft#203
rawlinson added a commit to rawlinson/microsoft-ui-xaml that referenced this issue Jan 23, 2019
…ft#203)

Remove the StackPanel containing the ContentPresenter and move layout
and indentation to the containing Grid.

Fix microsoft#203
kaiguo pushed a commit that referenced this issue Jan 24, 2019
…218)

Remove the StackPanel containing the ContentPresenter and move layout
and indentation to the containing Grid.

Fix #203
ranjeshj added a commit that referenced this issue Jan 25, 2019
* Update localization workflow for breaking changes (#162)

* Adding instrumentation for AcrylicBrush.TintLuminosityOpacity propert… (#149)

* Adding instrumentation for AcrylicBrush.TintLuminosityOpacity property change

* Changing telemetry logging of property change as a member instead of class

* Oops.  Forgot to remove the old id.

* Back-porting external changes from the OS repo. (#175)

* Avoid Narrator pronouncing the MenuFlyoutItem's keyboard accelerator. (#181)

* Avoid Narrator pronouncing the MenuFlyoutItem's keyboard accelerator.

* Expanding fix to pre-19H1 releases.

* Add screen capture and improved logging to helix tests (#176)

Enable /screencaptureonerror for TAEF tests and upload the screenshots to helix storage.
Also upload te.wtl log file.

Report uploaded urls of both of these to the Azure DevOps test report so that someone investigating a test failure can link directly to them instead of having to go to through the Mission Control site.

Here is an example run showing this in action:
https://dev.azure.com/ms/microsoft-ui-xaml/_build/results?buildId=1332&view=ms.vss-test-web.test-result-details

* Update the bug report issue template to not use checkboxes (#183)

* Renaming a few Scroller/ScrollViewer APIs (#185)

* Fixing Scroller's SnapPointsWithInvalidArgsThrow test.

* Renaming enum ScrollerState to InteractionState.
Renaming its enum values Interacting to Interaction and CustomAnimation to Animation.

* Updating ScrollBarVisibility enum. Replacing Collapsed with Hidden.

* Fix OS ports (#186)

* Update feature request issue template (#191)

* Make CalendarViewCalendarItemBackground the same as RS3 (#189)

* add SystemControlBackgroundAltHighRevealBackgroundBrush

* lift CalendarViewCalendarItemRevealBackground

* move CalendarViewCalendarItemRevealBackground to difference file

* Update TwoPaneView for API changes  (#193)

* MUX NavigationView should throw if WUXC NavViewItems are added to it (#69)

MUX NavigationView should throw if WUXC NavViewItems are added to it

Use IsItemItsOwnContainerOverride as a hook to approximate list contents change events and deny any WUX items in the MUX list.

[Internal Issue](https://microsoft.visualstudio.com/OS/ft_xamlcon/_workitems/edit/19017881)

* Applying some of the changes that came out of the API review meetings: (#200)

- Renaming enumerations
    ScrollerScrollMode --> ScrollMode
    ScrollerZoomMode --> ZoomMode
    ScrollerChainingMode --> ChainingMode
    ScrollerRailingMode --> RailingMode
    ScrollerInputKind --> InputKind
- Removing the ScrollMode.Auto enum value and make ScrollMode.Enabled the new default. I am preserving the old code with #ifdef USE_SCROLLMODE_AUTO since the Auto value may be re-introduced later.

* Adding telemetry for XLayout types (#169)

* Adding telemetry for XLayout types

* Update localization workflow for breaking changes (#162)

* Adding instrumentation for AcrylicBrush.TintLuminosityOpacity propert… (#149)

* Adding instrumentation for AcrylicBrush.TintLuminosityOpacity property change

* Changing telemetry logging of property change as a member instead of class

* Oops.  Forgot to remove the old id.

* Adding telemetry for XLayout types

* Undoing noisy merge

* Undoing another noisy merge

* Changes for Mux Acrylic and Reveal fallback is islands (#192)

* Keyboard Navigation: 'Back' button cannot be reached using tab order  (#204)

* Keyboard Navigation: 'Back' button cannot be reached using tab order
Remove special case code that disabled tab navigation on the NavigationView back button.
[Internal Issue](https://microsoft.visualstudio.com/OS/ft_xamlcon/_workitems/edit/20149845)
* Remove test case that assumes tab navigation is disabled on the back button
* Remove no longer used m_buttonHolderGettingFocusRevoker

* Add hints to cause GUID calculations to happen during precompile (#209)

* CommandBarFlyout Narrator fix (#199)

* Adding FlowsTo and FlowsFrom to ensure that the primary commands are connected to the secondary commands.

* Disabling new test to cut down on noise until it's fixed to work on all versions (#213)

[GitHub Issue](#211)

* Renaming Scroller.Child to Scroller.Content (#212)

* Scroller.Child renamed to Scroller.Content.

* Merging with master.

* Fix an animation bug of NavigationViewList. (#188)

*  Fix an animation bug of NavigationViewList.

* modify code to avoid /0 exception.

* When in mutiselect make sure that the treeview list supports selection pattern (#210)

* When in mutiselect make sure that the treeview list supports selection pattern

* Update Helix SDK version (#215)

This should improve PR validation from forks.

Also publish binlog from RunTestsInHelix.proj to aid debugging.

* Fix RatingControl scaling (#187)

* Fix spacing

* Fix margins

* Update comment

* Update calculations

* Remove inline

* Update comments

* Update dev/RatingControl/RatingControl.cpp

Co-Authored-By: kaiguo <[email protected]>

* Remove margin changes in markup

* Fix crash when scrolling nested ItemsRepeaters (#152)

* fix add pin bug
* update fix and also fix unrealiable canbringintoviewelements test
* fix unpinning case

* Pane Title is completely not visible in HC mode (#177)

* The pane title was being obscured by the pane toggle button. Outside of High Contrast that works
fine... but in HC the button background is opaque. I could split out resources for that background
to be transparent in HC... but fundamentally this is a weird layout to have the text _under_ the
button. It means that any non-transparent background is actually doing the wrong thing with regards
to layering on the text. So... I opted to change how this was built.

The key to fixing this was to have the button support both an icon and a piece of text. Since the
control already has a forked template this was pretty easy. Move the ContentPresenter to be to the
right of the fixed icon and update the layout accordingly.

The search button was riding on the same style as the toggle button for some reason. That wasn't
really necessary, as with a couple tweaks it could use a lightly styled standard Button template.

* Fix the behaviour of TreeViewItem.HorizontalContentAlignment (#203) (#218)

Remove the StackPanel containing the ContentPresenter and move layout
and indentation to the containing Grid.

Fix #203

* Remove workaround made for a midl bug. (#121)

* Fixing ScrollViewer name to turn on its tests in Helix. (#224)

* Replacing Scroller and ScrollViewer's IsChildAvailableWidthConstrained/IsChildAvailableHeightConstrained with ContentOrientation (#214)

* Step #1: Introduce Scroller/ScrollViewer.ContentOrientation.

* Step #2: Replace IsChildAvailableWidthConstrained/IsChildAvailableHeightConstrained usage with ContentOrientation and remove them.

* Updating ScrollerDynamicPage test UI.

* Fixing test ValidateSupportForScrollerConfigurationChanges.
@msft-github-bot
Copy link
Collaborator

🎉This issue was addressed in #218, which has now been successfully released as Microsoft.UI.Xaml v2.1.190131001-prerelease.:tada:

Handy links:

StephenLPeters pushed a commit that referenced this issue Feb 9, 2019
…218)

Remove the StackPanel containing the ContentPresenter and move layout
and indentation to the containing Grid.

Fix #203
@jevansaks jevansaks added the team-Controls Issue for the Controls team label Nov 7, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-TreeView bug Something isn't working good first issue A straightforward issue that's a good condidate if you are new to contributing help wanted Issue ideal for external contributors team-Controls Issue for the Controls team
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants