我已經(jīng)在C#中與應(yīng)用程序開發(fā)人員合作了大約一年-我已經(jīng)從C ++-CLI winForm切換到C#winForm,現(xiàn)在又切換到C#/ XML WPF。我正在創(chuàng)建一個模板來測試對UI / UX效果(動畫)的了解。本質(zhì)上發(fā)生的是,當(dāng)用戶選擇“入門”按鈕時,表單的右半部分(白色)的寬度從390擴(kuò)展到600,導(dǎo)致左半部分(橙色)縮小并顯示新信息。一切都很好,但是最近我發(fā)現(xiàn)使用Margin值時,網(wǎng)格元素有時會出現(xiàn)異常。下面顯示了TextBlock Margin =“ 0,97”與 TextBlock Margin =“ 210,97”之間的區(qū)別。我希望TextBlock位于橢圓的右邊,盡管它不可見。 <Grid x:Name="RightContent2" Opacity="1" Width="390" Height="410" Background="White"> <TextBlock x:Name="author2" Foreground="LightGray" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="210, 97" FontSize="8" Text="By Luke Isitt" Cursor="Hand"/> <Ellipse Height=" 25" Width="25" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="170, 90" Cursor="Hand"> <Ellipse.Fill> <ImageBrush ImageSource="./resources/images/Drake-smiling.jpg"/> </Ellipse.Fill> </Ellipse> <TextBlock Text="Lesson 3 of 32" FontFamily="Georgia" FontStyle="Italic" FontSize="9" Margin="50, 100, 30, 0" HorizontalAlignment="Left" VerticalAlignment="Top"></TextBlock> <Line Margin="150, 90, 0, 0" Y1="0" Y2="140" Stroke="#FFF1F1F1" StrokeThickness="1.75" HorizontalAlignment="Left" VerticalAlignment="Top"/> <TextBlock FontFamily="Times New Roman" FontSize="32" Margin="160, 140, 0, 0" FontWeight="SemiBold" HorizontalAlignment="Left" VerticalAlignment="Top"> Nike Email Best <LineBreak/> Practices <LineBreak/> <Line Margin="0, 13" X1="0" X2="80" Stroke="#FF642F" StrokeThickness="2.5"/> </TextBlock> <Line Margin="160, 300" X1="0" X2="150" Stroke="#FF642F" StrokeThickness="1" HorizontalAlignment="Left" VerticalAlignment="Top"/> </Grid>沒有重疊的元素,并且TextBlock位于網(wǎng)格層次結(jié)構(gòu)的頂部(盡管這似乎無關(guān)緊要)。任何人都可以提供有關(guān)為什么會發(fā)生這種情況的見解嗎?
1 回答

白衣染霜花
TA貢獻(xiàn)1796條經(jīng)驗 獲得超10個贊
Margin屬性的類型為Thickness,實際上包含4個值:Left,Top,Right,Bottom??梢酝ㄟ^分別指定所有4個值來設(shè)置邊距,即“ 210,97,5,30”,也可以使用單個值來縮寫,即使用“ 210”將左/上/右/下全部設(shè)置為210,或者使用2個值“ 210,97”,它將“左”和“右”都設(shè)置為210,“上和下”都設(shè)置為97。
在您的情況下,將TextBlock的Margin設(shè)置為“ 210,97”等效于將其設(shè)置為“ 210,97,210,97”,因此Left和Right均為210。這意味著您的水平邊距空間為420,并且寬度為父Grid的最大寬度僅為390,因此所得的TextBlock的寬度為-30,使其不可見。
要解決此問題,請根據(jù)您設(shè)置的“左/上”對齊方式,將“文本塊”的“邊距”設(shè)置為“ 210,97,0,0”,它將可見。
- 1 回答
- 0 關(guān)注
- 154 瀏覽
添加回答
舉報
0/150
提交
取消