1. 程式人生 > >設定TextBlock預設樣式後,其他控制元件的Text相關屬性設定失效問題

設定TextBlock預設樣式後,其他控制元件的Text相關屬性設定失效問題

原文: 設定TextBlock預設樣式後,其他控制元件的Text相關屬性設定失效問題

問題:

  • 定義了預設TextBlock樣式後,再次自定義下拉框 or 其他控制元件 ,當內部含有TextBlock時,設定控制元件的字型相關樣式無效,系統始終使用TextBlock設定預設樣式

解決方案:

  • 為相關控制元件定義資料模板,為內部TextBlock新增樣式資源,指向預設資源。

具體為啥會有這種問題不清楚,解決方案參考:https://bbs.csdn.net/topics/390262033

    <DataTemplate x:Key="DataTemplate3">
        <Grid>
            <TextBlock >
                <TextBlock.Resources>
                    <Style TargetType="{x:Type TextBlock}"/>
                </TextBlock.Resources>
            </TextBlock>
        </Grid>
    </DataTemplate>

建議:

  • 儘量不要定義TextBlock預設樣式,寧可在每個控制元件上設定Style屬性,或者將使用TextBlock的地方改用Label,然後定義Label的預設樣式【不過個人覺得一般情況還是不要使用Label,畢竟TextBlock是最簡的,消耗的電腦資源也最小】

解:奇葩史